jdk7和jdk8中的扩容触发条件有什么区别
1.9k
等12人参与

描述:
对于hashmap来讲,jdk7和jdk8中的扩容触发条件有什么区别:

思路:
可以通过查看源码,得出答案
jdk7触发扩容需要满足两个条件:
(1)、 存放新值的时候当前已有元素的个数必须大于等于阈值(由初始化hash桶数量16和阈值0.75为例,当map中的数据达到16*0.75=12时,此时map中的数据已经达到了hashmap扩容机制的阈值,当再
次插入第13个数据时hashmp将自动扩容)
(2)、 存放新值的时候当前存放数据发生hash碰撞(当前key计算的hash值换算出来的数组下标位置已经存在值)
jdk8则只需要满足一个条件:
当前存放新值(注意不是替换已有元素位置时)的时候已有元素的个数大于等于阈值(即已有元素等于阈值,下一个存放后必然触发扩容机制)

我的作业
去发布

登录后即可发布作业,立即

全部作业

数据加载中...

意见反馈 帮助中心 APP下载
官方微信