LinkedHashSet類原始碼解析

2022-09-23 08:51:09 字數 844 閱讀 9828

linkedhashset概述:

linkedhashset是具有可預知迭代順序的set介面的雜湊表和鏈結列表實現。此實現與hashset的不同之處在於,後者維護著乙個執行於所有條目的雙重鏈結列表。此鏈結列表定義了迭代順序,該迭代順序可為插入順序或是訪問順序。

注意,此實現不是同步的。如果多個執行緒同時訪問鏈結的雜湊set,而其中至少乙個執行緒修改了該set,則它必須保持外部同步。

package j**a.util;

public class linkedhashset

extends hashset

implements set, cloneable, j**a.io.serializable

public linkedhashset(int initialcapacity)

/*** constructs a new, empty linked hash set with the default initial

* capacity (16) and load factor (0.75).

*/public linkedhashset()

public linkedhashset(collection c)

}這個時候看不出來呼叫了linkedhashmap

根據上呼叫父類hashset的建構函式

hashset中的這個建構函式

hashset(int initialcapacity, float loadfactor, boolean dummy) 這裡是用到的linkedhashmap,而linkedhashmap,維護乙個雙鏈表,可以根據插入順序遍歷集合元素,所有linkedhashset也容養具有了順序遍歷集合元素的功能。

LinkedHashSet集合的小結

如果在開發中,元素唯一性,並且還要保證元素有序 儲存和取出一致 使用linkedhashset集合 如果開發中要使用集合排序的問題,使用treeset集合 紅黑樹結構 下午分解.自然排序 選擇器排序 linkedhashset集合 底層是一種鏈結列表和雜湊表組成 可以保證元素的唯一性,是由雜湊表決定...

Java集合之LinkedHashSet原始碼分析

linkedhashset與hashset類似,不同的是linkedhashset底層使用linkedhashmap維護元素插入的順序.linkedhashset繼承自hashset,只是重寫了hashset的構造方法,初始化乙個linkedhashmap,其他均與hashset相同.hashset...

Java LinkedHashMap類原始碼解析

linkedhashmap繼承了hashmap,他在hashmap的基礎上增加了乙個雙向鍊錶的結構,鍊錶預設維持key插入的順序,重複的key值插入不會改變順序,適用於使用者需要返回乙個順序相同的map物件的情況。還可以生成access order順序的版本,按照最近訪問順序來儲存,剛被訪問的結點處...