如何更改 hashmap 负载因子

how to change the hashmap load factor

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

有没有什么方法可以设置和使用load factory。我有 100k 条记录,我不想一次又一次地重新散列,我想更改负载因子,以便它可以在不重新散列的情况下高效工作。

你不能在创建地图后改变它,最多你可以使用为此定义的构造函数

doc 所述:

public HashMap(int initialCapacity, float loadFactor)

Constructs an empty HashMap with the specified initial capacity and load factor.

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

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

HashMap()

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


HashMap(int initialCapacity)

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


HashMap(int initialCapacity, float loadFactor)

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

As @Xoce mentioned, you can't change loadFactor later, I do agree with him on this. Use it while creating the hashmap.

@NPE 在这里提供了有关 significance of loadfactor.

的详细信息

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