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

猜你喜欢

转载自www.cnblogs.com/tekikesyo/p/10209450.html