HashMap架构中Array的初始大小是多少?

时间:2016-11-28 14:04:19

标签: java hashmap

我认为HashMap的内部存储桶使用数组来存储基于键的值,如下面的屏幕截图所示。

array in HashMap

那么,数组16的初始大小是多少?如果大小增加,HashMap内部会重新发生一切?如果没有,那么HashMap中数组的初始大小是多少。

另外请确认它是使用数组还是使用ArrayList等任何其他数据结构?

2 个答案:

答案 0 :(得分:3)

  

是否意味着数组的初始大小为16

这是OpenJDK / OracleJDK中的默认值。您可以将其设置得更高或更低。

  

稍后如果大小增加HashMap内部重新调整为新大小?

当达到载荷因子时,它会调整并重新排列散列元素/键

  

如果不是那么HashMap中Array的初始大小是什么

如果你设置它,则使用下一个2的幂。

  

是否使用Array或任何其他数据结构,如ArrayList

它使用数组和附加数据结构来处理冲突。

  

Java 8使用平衡树来处理冲突

如果密钥是可比较的,例如字符串,任何数字,使用树,否则使用列表。

答案 1 :(得分:0)

来自Oracle docs,

HashMap()构造一个空的HashMap,其默认初始容量为(16),默认加载因子为0.75