java如何管理会导致其性能不佳的hashmap大小分配?
例如,如果我分配一个大小为100的Hashmap,如果创建了100个bucket,那么Hashmap的性能不是很差吗?(因为执行模块散列不会在所有100个存储桶中均匀分配密钥)java如何管理会导致其性能不佳的hashmap大小分配?,java,hash,hashmap,hashtable,hashcode,Java,Hash,Hashmap,Hashtable,Hashcode,例如,如果我分配一个大小为100的Hashmap,如果创建了100个bucket,那么Hashmap的性能不是很差吗?(因为执行模块散列不会在所有100个存储桶中均匀分配密钥) java如何处理这个问题?它是否随机选择一个接近100的素数作为Hashmap大小 正如您在中看到的,它选择了两次幂中的下一次最大幂(第197行ff): //查找2的幂>=初始容量 int容量=1; 同时(容量
java如何处理这个问题?它是否随机选择一个接近100的素数作为Hashmap大小 正如您在中看到的,它选择了两次幂中的下一次最大幂(第197行ff):
//查找2的幂>=初始容量
int容量=1;
同时(容量<初始容量)
容量
// Find a power of 2 >= initialCapacity
int capacity = 1;
while (capacity < initialCapacity)
capacity <<= 1;
this.loadFactor = loadFactor;
threshold = (int)(capacity * loadFactor);
table = new Entry[capacity];