初始容量如何影响HashMap的性能

时间:2012-10-03 16:58:04

标签: java performance hashmap

documentation for HashMap包含以下声明:

  

因此,不要将初始容量设置得太高(或者   如果迭代性能很重要,那么负载因子太低了。

有人可以解释一下吗。我没有看到任何改变或影响HashMap的加载因子的方法

3 个答案:

答案 0 :(得分:2)

当您将HashMap声明为constructor参数的一部分时,您可以为其提供初始容量和加载因子:

 HashMap(int initialCapacity, float loadFactor) 
     Constructs an empty HashMap with the specified initial capacity and load factor.

您还可以查看this SO thread,了解有关负载因素和初始容量的信息。

答案 1 :(得分:2)

初始容量太大和负载因子太低都会导致哈希表中大多数条目都是空的。虽然这降低了冲突的几率(从而提高了平均查找性能),但迭代哈希表的键/值/项需要跳过更多的空槽。

正如其他人所解释的那样,您可以在构造哈希表对象时给出加载因子和初始容量。

答案 2 :(得分:0)

哈希表背后有很多理论,对于给定的输入集预测,什么是“好的”哈希表,我将从the Wikipedia article开始(特别是在链接的“加载因子”部分)。

相关问题