澄子澄子大澄子 2021-11-03 23:39 采纳率: 84.6%
浏览 40
已结题

关于HashMap中的table数组扩容的问题

table数组使用到了临界值12的时候(添加一个元素,table就会加1),就会扩容到 16 * 2 = 32

首先table初始化的大小是16个,也就是说临界值是 16 *0.75 = 12;

下面这张图片,我添加的元素还没有到12个,table就扩容到32了,

img

然后等我添加11个的时候,table又扩容到了64

img

  • 写回答

3条回答 默认 最新

  • 尘风-随手记 2021-11-04 09:15
    关注

    hashMap是数组+链表+红黑树结构。
    扩容情况:
    1、当达到阈值时二倍扩容;
    2、当hash冲突同一个桶中链表元素达到8且数组长度小于64,会扩容,不转红黑树;链表长度达到8长度大于64转红黑树。
    你这个情况应该是hash冲突,链表长度达到8但是数组长度小于64,所以扩容了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月3日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!