丰金网络 做网站,网站开发职业类别代码,晋江市建设局网站,健康网站建设与管理jdk8之前#xff0c;hashmap采用的数据结构是数组链表#xff0c;jdk8之后采用的数据结构是数组链表/红黑树。hashmap的数据以键值对的形式存在#xff0c;如果两个元素的hash值相同#xff0c;就会发生hash冲突#xff0c;被放到同一个链表上---如何解决hash冲突---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 覆盖。