2017-09-12 221 views
2

我們知道散列表的默認加載因子爲0.75,如果我想改變它如何做到這一點。如何更改散列表加載因子

有什麼方法可以設置和使用負載工廠。我有100k條記錄,我不想一次又一次地刷新,我想更改加載因子,以便它可以高效地工作,而不會重新散列。

+0

你有沒有考慮諮詢的Javadoc? – EJP

回答

3

創建地圖後,你不能改變的是,你最多隻能y使用該

doc狀態定義的構造函數:

public HashMap(int initialCapacity, float loadFactor) 

構造帶的空HashMap指定的初始容量和負載係數。

Map<String, String> x = new HashMap<>(10, 0.85f); 
0

以下是3個有用的構造函數來幫助你。明智地使用它:)。更多信息here

HashMap() 

構造具有默認初始容量(16)和默認負載因數(0.75)的空HashMap中。


HashMap(int initialCapacity) 

構建的空HashMap與指定的初始容量和默認加載因子(0.75)。


HashMap(int initialCapacity, float loadFactor) 

構建的空HashMap與指定的初始容量和負載因子。

由於@Xoce提到,以後不能再更改loadFactor,我確實同意 他對此。在創建hashmap時使用它。

@NPE提供了極大的細節在這裏約significance of loadfactor.

+0

我們也可以用ArrayList做。 offcourse不哈希,但arraylist使用loadFactor來增加arraylist的大小。 – shiv

+0

它是arrayList的初始容量。我從來沒有聽說過在arrayList中使用loadfactor。 loadfactor與哈希和hashmap有關。 – nagendra547

+0

哦對了對不起,我完全忘了 – shiv