#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变量并不是只在没有哈希冲突的时候才会增加。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 有关类的报错,在模块里调用另一个模块的方法下的变量时出错
- ¥15 delphi7 HMAC_SHA256方式加密
- ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
- ¥15 下列c语言代码为何输出了多余的空格
- ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)
- ¥15 openHarmony 利用c++程序在dayu210开发板上实现拉取RTSP视频流并且在屏幕上显示
- ¥15 GD32H757的can通信配置
- ¥20 nist随机数测试的问题
- ¥20 帮我解决这个项目,thank you各位程序员
- ¥15 哪位能用ea软件做一下,有偿