对hashmap的理解(侧重于初始化容量,自动扩容算法,规则)

一、HashMap的默认值

HashMap的默认初始容量为16,默认加载因子为0.75,默认阈值为:16*0.75=12

当HashMap的size超过阈值,HashMap的容量就会改变(扩大为原始大小的两倍)

如下图代码:

1在进行第一次往mao里添加数据时,我们可以看到下拉数值的变化:

对hashmap的理解(侧重于初始化容量,自动扩容算法,规则)_第1张图片

2当循环次数(也就是HashMap的size)超过threshold阈值(12)时,就会发现下列变化

对hashmap的理解(侧重于初始化容量,自动扩容算法,规则)_第2张图片

自动扩容规则/算法:

由此可见,当HashMap的size大于加载因子时,HashMap的容量就会扩大为原来的2倍,并且阈值也会随之改变,以此类推,当HaspMap的大小超过现在的阈值24时,HashMap的大小就会变为64,而阈值会变为64*0.75=48

二、HashMap可以设置初始容量和加载因子,

 

你可能感兴趣的:(java,eclipse)