HashMap 的文档包含以下语句:
因此,不要将初始容量设置得太高(或 负载系数太低),如果迭代性能很重要。
有人可以解释一下。我没有看到任何更改或影响
当您将 HashMap 声明为构造函数参数的一部分时,您可以为其提供初始容量和负载系数:
HashMap(int initialCapacity, float loadFactor)
Constructs an empty HashMap with the specified initial capacity and load factor.
您还可以查看此 SO 线程,了解有关负载系数和初始容量的一些见解。
太大的初始容量和太低的负载因子都会导致哈希表,其中大多数条目都是空的。虽然这降低了冲突的几率(从而提高了平均查找性能),但迭代哈希表的键/值/项需要跳过更多的空槽。
正如其他人所解释的,您可以在构造哈希表对象时给出负载因子和初始容量。
表背后有很多理论,对于给定的输入集预测,什么是"好"的哈希表,我会从维基百科的文章开始(特别是在链接的"负载因子"部分)。