例如,如果我分配一个大小为100的Hashmap,如果创建了100个桶,那么Hashmap的表现不会很差吗? (由于执行模块化散列不会在所有100个桶中均匀分配密钥)
java如何管理这个问题?是否随机选择100附近的素数作为Hashmap大小?
答案 0 :(得分:1)
正如你可以在sources中看到的那样,它选择了下一个最大的两个力量(第197行):
// 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];