我认为HashMap
的内部存储桶使用数组来存储基于键的值,如下面的屏幕截图所示。
那么,数组16的初始大小是多少?如果大小增加,HashMap
内部会重新发生一切?如果没有,那么HashMap
中数组的初始大小是多少。
另外请确认它是使用数组还是使用ArrayList
等任何其他数据结构?
答案 0 :(得分:3)
是否意味着数组的初始大小为16
这是OpenJDK / OracleJDK中的默认值。您可以将其设置得更高或更低。
稍后如果大小增加HashMap内部重新调整为新大小?
当达到载荷因子时,它会调整并重新排列散列元素/键
如果不是那么HashMap中Array的初始大小是什么
如果你设置它,则使用下一个2的幂。
是否使用Array或任何其他数据结构,如ArrayList
它使用数组和附加数据结构来处理冲突。
Java 8使用平衡树来处理冲突
如果密钥是可比较的,例如字符串,任何数字,使用树,否则使用列表。
答案 1 :(得分:0)
来自Oracle docs,
HashMap()构造一个空的HashMap,其默认初始容量为(16),默认加载因子为0.75