0

我需要一个不会改变它的大小的哈希表,因为一开始我知道大小应该是 N,并且表不应该在程序中改变,所以我应该将负载因子设置为 1 表示不增加它的大小直到大小增加到 N+1,我知道这永远不会发生?

更具体地说,我想要这个:当它达到 N 时,它不应该增加,但如果发生 N+1,则增加大小。这是设置它的正确方法吗?

4

2 回答 2

2

除非您需要同步访问,否则您可能想要使用java.util.HashMap而不是。Hashtable两者都为您提供了一个构造函数来设置初始容量。

负载因子是重新散列表之前项目数的上限阈值乘数。

于 2013-10-03T03:06:08.010 回答
1

最简单的答案是肯定的。不过稍微解释一下..

重新散列的阈值是这样计算的

threshold = (int)(initialCapacity * loadFactor);

并且在 put 方法中,rehash 由以下条件触发。

if (count >= threshold)

这对于 HashMap 来说也或多或少是正确的。如果您决定使用它。

于 2013-10-03T03:10:39.670 回答