jdk1.8中HashMap底层链表转红黑树的阈值为什么是8?链表查询慢为啥不直接用红黑树?
作者:互联网
总结一下:jdk1.8中HashMap底层链表转红黑树的阈值为什么是8?链表查询慢为啥不直接用红黑树?
1、红黑树插入效率慢,例如我插入一个001、002、003会进行左旋,进行数据交换,效率较低,阈值为8是想达到一个平衡。
2、红黑树中的TreeNode是链表中的Node所占空间的2倍。
3、虽然红黑树的查找效率为o(logN),要优于链表的o(N),但是当链表长度比较小的时候,即使全部遍历,时间复杂度也不会太高。
4、实验证明,之所以是8,hash碰撞发生8次的概率已经降低到了0.00000006。
5、链表长度大于8时,链表性能已经很差了。
标签:黑树,jdk1.8,HashMap,阈值,链表,红黑树 来源: https://blog.csdn.net/weixin_42865375/article/details/122427006