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

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

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

我的作业
去发布

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

全部作业
0
评论
提交于  2022-12-15 10:21:09

登录后即可查看更多作业,立即

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号