是的,如果您事先知道hashmap的大小,则可以避免这种情况.
设置loadFactor = 1(默认值为0.75)
initialCapacity = hashmap 1的大小(默认值为16).
使用以下构造函数来实例化hashmap
public HashMap(int initialCapacity, float loadFactor)
这将起作用,因为在HashMap类的下面的代码片段中,条件(大小> =阈值)将永远不会被满足,因此哈希表永远不会调整大小.
void addEntry(int paramInt1, K paramK, V paramV, int paramInt2)
{
if ((size >= threshold) && (null != table[paramInt2]))
{
resize(2 * table.length);
paramInt1 = null != paramK ? hash(paramK) : 0;
paramInt2 = indexFor(paramInt1, table.length);
}
createEntry(paramInt1, paramK, paramV, paramInt2);
}