我不含糖 2022-08-10 16:58 采纳率: 0%
浏览 29

HashMap扩容机制问题

#HashMap扩容机制问题
我们常见的文章博客和看的大多数视频都说了HashMap扩容机制问题,但是我这里有几个小的疑问?
第一个:当我初始化HashMap并且放入了第一个元素后,那么HashMap就被初始化为16的大小。那么如果我后续放入的8个元素经过hash算法都放入下标为1的位置上(假设第一次put的元素在下标为0的位置上),这个时候我再插入4个元素(这4个元素随机分配)。那么这种情况下会触发扩容吗?
我看的文章都说数组使用量大于16*0.75即12个的时候就进行扩容,文章所说的扩容条件是只是单纯的数组使用超过12,还是数组加上链表的元素超过12呢?
第二个:以我所看的文章和视频教会给我的东西是:当数组长度没有达到扩容条件,但是某个下标的链表长度达到了8及以上,那么就会优先进行扩容,然后重新hash。真实情况是这样吗?

  • 写回答

3条回答 默认 最新

  • yedelzx 2022-08-10 17:29
    关注

    去看hashMap里面的puVal方法,最后几行的代码,扩容其实是根据size变量来的,但这个size变量并不是只在没有哈希冲突的时候才会增加。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月10日

悬赏问题

  • ¥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单片机|单片机|测试代码)