我需要一个不会改变它的大小的哈希表,因为一开始我知道大小应该是 N,并且表不应该在程序中改变,所以我应该将负载因子设置为 1 表示不增加它的大小直到大小增加到 N+1,我知道这永远不会发生?
更具体地说,我想要这个:当它达到 N 时,它不应该增加,但如果发生 N+1,则增加大小。这是设置它的正确方法吗?
除非您需要同步访问,否则您可能想要使用java.util.HashMap
而不是。Hashtable
两者都为您提供了一个构造函数来设置初始容量。
负载因子是重新散列表之前项目数的上限阈值乘数。
最简单的答案是肯定的。不过稍微解释一下..
重新散列的阈值是这样计算的
threshold = (int)(initialCapacity * loadFactor);
并且在 put 方法中,rehash 由以下条件触发。
if (count >= threshold)
这对于 HashMap 来说也或多或少是正确的。如果您决定使用它。