2016-08-14 28 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

相關問題