这很大程度上取决于您如何解决冲突。如果您使用线性探测,则负载因子高于60%时,性能通常会急剧下降。如果您使用双重哈希,负载因子为80-85%通常相当合理。如果您使用冲突链接,则负载因子通常可以保持在约150%左右或更高。我有时甚至使用平衡树创建哈希表以解决冲突。在这种情况下,你几乎可以忘记再次哈希 - 性能直到项目数量超过表大小至少两个数量级才开始明显恶化。
一般来说,你有一个包含N个元素的哈希表分布在M个插槽的数组中。 在实例化哈希表时,用户定义了一个百分比值(称为“growthFactor”),它被用于以下方式: if (growthRatio < (N/M)) Rehash(); 重新散列意味着你的M个插槽的数组应该被调整大小以包含更多元素(最好是当前大小的素数大于1倍或2倍),并且你的元素必须分布在新的较大数组中。此类值应该设置在0.6和0.8之间。