欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 面试简要介绍hashMap

面试简要介绍hashMap

2024/10/28 7:31:00 来源:https://blog.csdn.net/qq_65578092/article/details/143254094  浏览:    关键词:面试简要介绍hashMap

jdk8之前,hashmap采用的数据结构是数组+链表,jdk8之后采用的数据结构是数组+链表/红黑树。hashmap的数据以键值对的形式存在,如果两个元素的hash值相同,就会发生hash冲突,被放到同一个链表上--->如何解决hash冲突--->再hash法,即当发生hash冲突时,使用另一个哈希函数对键进行再次哈希,以确定下一个位置。在jdk8之后,链表超过8会转化为红黑树,如果当前数据/数据总容量 > 负载因子,hashmap就会进行扩容,初始化容量默认是16,默认加载因子是0.75,该数据是通过泊松分布数学计算得出的。

回答思路:

hashmap的数据结构-->红黑树-->扩容,负载因子

hashmap的数据形式-->键值对-->hash冲突-->解决方案

补充:hashmap为什么不安全

在 JDK1.7 中,HashMap 采用头插法,因此并发情况下会导致环形链表,产生死循环。

虽然 JDK1.8 采用了尾插法解决了这个问题,但是并发下的 put 操作也会使前一个 key 被后一个 key 覆盖。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com