美文网首页
JDK8的HashMap为什么要引入红黑树?

JDK8的HashMap为什么要引入红黑树?

作者: 糯米团子123 | 来源:发表于2022-07-06 22:01 被阅读0次

当HashMap的key冲突过多时,会导致链表过长。而链表的查询效率很差,因此引入红黑树优化查询效率。

为什么当链表长度大于8时候才会转红黑树而不是一开始直接使用红黑树:

树节点占用空间是普通节点的两倍,因此在开始较短时候使用链表,占用空间少,查询性能也相差不大。但是当链表越来越长,查询效率逐渐变低,为保证查询效率才会舍弃链表转为红黑树,以空间换时间。

根据统计,HashMap链表长度为8的概率仅有不到千万分之一,这时链表的查询性能很差了。在这种极端罕见的情况下才会将链表转换为红黑树。

相关文章

网友评论

      本文标题:JDK8的HashMap为什么要引入红黑树?

      本文链接:https://www.haomeiwen.com/subject/ngxubrtx.html