2016-08-14 645 views
1

的HashMap的负载因子OS 0.75f的默认值即一旦hasmap容量的75%填充将重新哈希散列图。如果我将负载因子的值设置为大于1,例如让我们说2(超级(容量+1,2.0f,真);)如果什么HashMap的负载因子值大于1个

它如何在sch case中工作以及哈希如何在这里工作

回答

2

如果我设定的负载系数的值大于1,例如可以说2(超(容量+ 1,2.0F,真);)

你已经有答案了;

...一旦填充了散列表的容量,它将重新散列哈希映射。

哈希的工作原理相同,只是采用了更小的容量,这会影响性能。如果您的初始容量足够大,则负载因数永不起作用。载荷系数仅适用于地图大小调整的情况。

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

我建议你试试看。

BTW改变负载因子可以改变元件显示为有较少桶的顺序。尝试打印出Set或Map并进行比较。

+0

感谢您的解释@peter lawrey – Samar

0

Java的HashMap的使用封闭式处理,因此如果在哈希表中的多个元素都哈希到同一位置,Java的只是把所有的人都在同一个桶中的一些辅助的数据结构。这使得负载因数可以任意高。这是比说不同,在负荷因子永远不能超过一个线性探测哈希表。

+0

像一个链接寻址... –

+0

@mithatkonut是的,正好。 – templatetypedef

相关问题