2017-09-12 227 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