首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

深入理解JDK8 HashMap

上一篇文章提到,HashMap在JDK7或者JDK8中采用的基本存储结构都是数组+链表形式,可能有人会提出疑问,HashMap在JDK8中不是数组+链表+红黑树吗?本文的回答是。至于为什么JDK8在一定条件下将链表转换为红黑树,我相信很多人都会回答:为了提高查询效率。基本答案可以说是这样的,JDK7中的HashMap对着Entry节点增多,哈希碰撞的概率在慢慢变大,这就直接导致哈希表中的单链表越来越长,这就大大降低了HashMap的查询能力,且时间复杂度可能会退化到O(n)。针对这种情况,JDK8做出了优化,就是在一定的条件下,链表会被转换为红黑树,提升查询效率。 HashMap在JDK8中基本结构示意图如下所示:

01
领券