1. 程式人生 > >Java的HashMap資料結構

Java的HashMap資料結構

標題太大~~~自己做點筆記.別人寫得太好了.

https://www.cnblogs.com/liwei2222/p/8013367.html

 

HashMap 1.6時代, 使用Entry[]陣列, 而Entry在HashCode碰撞衝突時,會形成連結串列.

所以最終的結構應該是一個 陣列, 每個陣列元素是個連結串列.

1.8時代, 使用了TreeNode[]陣列,發生衝突時, 形成連結串列或紅黑樹.是連結串列還是紅黑樹, 在連結串列長度大於8時,put操作裡有轉)

if (binCount >= TREEIFY_THRESHOLD - 1) treeifyBin(tab, hash);

TREEIFY_THRESHOLD 是8