HashSet扩容成红黑树机制

Posted Love and Share

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashSet扩容成红黑树机制相关的知识,希望对你有一定的参考价值。

结论:

1)HashSet底层是HashMap,第一次添加时,table数组扩容到16,临界值(threshold)是 16*加载因子(loadFactor)是0.75=12

2)如果table数组使用到了临界值12,就会扩容到16*2=32,新的临界值是32*0.75=24,依次类推

3)在java8中,如果一条链表的元素个数到达TREEIFY_THRESHOLD(默认是8),并且table的大小 >= MIN_TREEIFY_CAPCITY(默认是64),就会进行树化(红黑树),否则仍然采用数组扩容机制

以上是关于HashSet扩容成红黑树机制的主要内容,如果未能解决你的问题,请参考以下文章

(转)为什么HashMap中链表长度超过8会转换成红黑树

为什么HashMap中链表长度超过8会转换成红黑树

HashMap的工作原理以及代码实现,为什么要转换成红黑树?

HashMap的工作原理以及代码实现,为什么要转换成红黑树?

HashMapLinkedHashMap

HashMapLinkedHashMap