Java原始碼分析之HashSet

2021-07-28 08:07:38 字數 917 閱讀 5340

//hashset的本質,其實就是hashmap

private

transient hashmapmap;

//hashmap是鍵值對,而hashset是單值,所以需要乙個值來充當鍵值對中的值

private

static

final object present = new object();

public

hashset()

public

hashset(collection<? extends e> c)

public

hashset(int initialcapacity, float loadfactor)

public

hashset(int initialcapacity)

size() isempty()
public

intsize()

public

boolean

isempty()

contains()
public

boolean

contains(object o)

add
//注意put進去時候,值是present

public

boolean

add(e e)

remove
//為什麼要判相等呢?因為map.remove返回的是值,而set返回的是boolean

public

boolean

remove(object o)

Java原始碼分析之ArrayList

自我學習原始碼,也借鑑了網上其他的資料,有寫的不準確的地方,請輕噴,謝謝 1 繼承自abstractlist類 2 實現了randomaccess介面,randomaccess介面是list 實現所使用的標記介面,用來表明其支援快速 通常是固 定時間 隨機訪問。此介面的主要目的是允許一般的演算法更改...

JAVA原始碼分析Collection之Map

map的底層實現 linkedlist陣列,乙個非常大的陣列,linkedlist中儲存的是myentry物件 包括key和value屬性的物件 因為要保證map中的查詢速度比較快,是基於雜湊演算法來實現的,雜湊的主要實現是依靠hashcode方法。hashcode的產生是基於,記憶體位址產生的,保...

Java原始碼分析之ArrayList

儲存arraylist中的內容 transient object elementdata non private to simplify nested class access 表示元素的數量 private int size transient 關鍵字,就是這部分不參與序列化 建構函式有三個 沒有...