#HashMap扩容机制问题
我们常见的文章博客和看的大多数视频都说了HashMap扩容机制问题,但是我这里有几个小的疑问?
第一个:当我初始化HashMap并且放入了第一个元素后,那么HashMap就被初始化为16的大小。那么如果我后续放入的8个元素经过hash算法都放入下标为1的位置上(假设第一次put的元素在下标为0的位置上),这个时候我再插入4个元素(这4个元素随机分配)。那么这种情况下会触发扩容吗?
我看的文章都说数组使用量大于16*0.75即12个的时候就进行扩容,文章所说的扩容条件是只是单纯的数组使用超过12,还是数组加上链表的元素超过12呢?
第二个:以我所看的文章和视频教会给我的东西是:当数组长度没有达到扩容条件,但是某个下标的链表长度达到了8及以上,那么就会优先进行扩容,然后重新hash。真实情况是这样吗?
HashMap扩容机制问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- yedelzx 2022-08-10 17:29关注
去看hashMap里面的puVal方法,最后几行的代码,扩容其实是根据size变量来的,但这个size变量并不是只在没有哈希冲突的时候才会增加。
解决 无用评论 打赏 举报
悬赏问题
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)