HashMap对象如果不指定初始化容量initialCapacity的话,HashMap的默认容量是16。
举个栗子:
new HashMap(7) 会创建容量为8的Map;
new HashMap(10) 会创建容量为16的Map;
具体是因为JDK会默认帮我们计算一个合理的值做初始容量,,,也就是找一个比传入值大的2的幂。
还是上面的例子,new HashMap(7),7比2的2次方大(4),比2的三次方(8)小,就找一个比它刚好大的2的幂;new HashMap(10),10比2的3次方大(8),比2的四次方(16)小,也就用2^4(16)作为初始容量。
引用: