3

我们知道 hashmap 的默认加载因子是 0.75,如果我想改变它怎么做。

有什么方法可以让我们设置和使用加载工厂。我有 100k 条记录,我不想一次又一次地重新散列,我想更改负载因子,以便它可以有效地工作而无需重新散列。

4

3 回答 3

3

创建地图后,您无法更改它,您最多可以使用为此定义的构造函数

正如文档所述:

public HashMap(int initialCapacity, float loadFactor)

构造一个具有指定初始容量和负载因子的空 HashMap。

 Map<String, String> x = new HashMap<>(10, 0.85f);
于 2017-09-12T17:23:43.810 回答
0

以下是 3 个有用的构造函数来帮助你。明智地使用它:)。更多信息在这里

HashMap()

构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。


HashMap(int initialCapacity)

构造一个具有指定初始容量和默认加载因子 (0.75) 的空 HashMap。


HashMap(int initialCapacity, float loadFactor)

构造一个具有指定初始容量和负载因子的空 HashMap。

正如@Xoce 提到的,您以后不能更改 loadFactor ,我同意他的观点。在创建哈希图时使用它。

@NPE 在此处提供了有关负载因子重要性的详细信息。

于 2017-09-12T17:32:45.633 回答
0

它是在构建地图时完成的。您可以设置负载系数和初始容量。初始容量是散列的初始桶数,负载因子是调整大小和自动增量之前允许的最大条目百分比。您可以将值设置为浮点数。

于 2018-05-29T03:56:37.987 回答