如果 HashMap 的负载因子大于 1 会发生什么?

Sam*_*mar 6 java hashmap load-factor

hashmap 的负载因子 os 的默认值是 0.75f,即一旦 hasmap 容量的 75% 被填满,它将重新散列哈希图。如果我将负载因子的值设置为大于 1,例如让我们说 2 (super(capacity+1, 2.0f, true);)

它将如何在 sch 情况下工作以及散列将如何在这里工作?

Pet*_*rey 6

如果我将负载因子的值设置为大于 1,例如让我们说 2 (super(capacity+1, 2.0f, true);)

你已经有了答案;

...一旦hashmap 容量的200%被填满,它将重新hash映射。

散列的工作原理相同,它只是使用较小的容量,这会影响性能。如果您使初始容量足够大,则负载系数永远不会起作用。加载因子仅在调整地图大小时适用。

注意:实际容量始终是 2 的幂。

我建议你试试。

顺便说一句,更改负载因子可以更改元素出现的顺序,因为存储桶较少。尝试打印 Set 或 Map 并进行比较。