JDKJDK1.8 HashMap两种扩容的情况和转红黑树

Posted cyrbjh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDKJDK1.8 HashMap两种扩容的情况和转红黑树相关的知识,希望对你有一定的参考价值。

JDK1.8 HashMap两种扩容的情况。
1,当map实际数量等于threshold容量的阈值时,会进行两倍扩容。
2,当map中数组中某个桶的链表长度大于树形化阈值TREEIFY_THRESHOLD=8时,
并且map元素的数量小于树形化最小容量MIN_TREEIFY_CAPACITY=64时候,容量进行两倍扩容。

否则树形化阈值8并且map元素个数大于64时,进行链表转红黑树。

put方法

技术图片

技术图片

treeifyBean树形化方法:

 

 技术图片

 

 

 

 

 

以上是关于JDKJDK1.8 HashMap两种扩容的情况和转红黑树的主要内容,如果未能解决你的问题,请参考以下文章

HashMap的扩容机制---resize() & 死循环的问题

为什么HashMap建议初始化容量,且容量为2的次幂?

HashMap与ConcurrentHashMapHashTable

hashmap性能跟数据量关系

HashMap中的resize问题

Java数据结构-HashMap