讀HashSet原始碼

2021-09-02 21:01:38 字數 706 閱讀 7307

//先看建構函式

public hashset()

public hashset(int initialcapacity)

public hashset(int initialcapacity, float loadfactor)

//這個構造方法不是public的,僅用於linkedhashset.

hashset(int initialcapacity, float loadfactor, boolean dummy)

//新增 present代表乙個物件(虛擬物件)

public boolean add(e e)

public boolean contains(object o)

public int size()

public boolean isempty()

public boolean remove(object o)

public void clear()

public iteratoriterator()

/**總結:hashset低層使用hashmap實現,通過hashmap的key不允許重複來保證元素不能重複。

另外linkedhashset繼承了hashset.低層使用使用的linkedhashmap實現。可以保證set集合在插入時候的順序。

*/

HashSet原始碼分析

基於hashmap的set介面實現。它不保證集合的迭代順序。特別是,它不能保證順序會隨著時間的推移保持恆定,當擴容時順序將調整。此類允許null元素。建立的hashmap private transient hashmap map 因為底層使用hashmap實現,要存key,value,這個固定值就...

HashSet原始碼分析總結

hashset實現set介面,由雜湊表 實際上是乙個hashmap例項 支援。它不保證set 的迭代順序 特別是它不保證該順序恆久不變。此類允許使用null元素。hashset中的元素實際上取得是hashmap節點中的key,因為hashmap中的key具有唯一性,故而hashset中的元素值不可重...

JDK原始碼之HashSet

1.定義 hashset繼承abstractset類,實現set,cloneable,serializable介面。set 介面是一種不包括重複元素的 collection,它維持它自己的內部排序,所以隨機訪問沒有任何意義。public class hashsetextends abstractse...