HashMap 的底层数据结构是什么?

编程入门 行业动态 更新时间:2024-10-15 12:29:50

HashMap 的底层<a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构是什么?"/>

HashMap 的底层数据结构是什么?

HashMap 的底层数据结构是什么?
在JDK1.7 中,由“数组+链表”组成:数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的。
在JDK1.8 中,由“数组+链表+红黑树”组成:当链表过长,则会严重影响 HashMap 的性能,红黑树搜索时间复杂度是 O(logn),而链表是糟糕的 O(n)。因此,JDK1.8 对数据结构做了进一步的优化,引入了红黑树,链表和红黑树在达到一定条件会进行转换:
● 当链表长度 > 8 && 数组长度 >= 64 才会转红黑树; 其实这种情况,发生的概率很低。
● 将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树,以减少搜索时间。因为,数组扩容在一定程度上也可以减少哈希冲突如的发生。

更多推荐

HashMap 的底层数据结构是什么?

本文发布于:2023-12-03 19:37:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657029.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构   底层   HashMap

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!