java如何管理会导致性能不佳的hashmap大小分配?

时间:2013-03-15 10:06:22

标签: java hash hashmap hashtable hashcode

例如,如果我分配一个大小为100的Hashmap,如果创建了100个桶,那么Hashmap的表现不会很差吗? (由于执行模块化散列不会在所有100个桶中均匀分配密钥)

java如何管理这个问题?是否随机选择100附近的素数作为Hashmap大小?

1 个答案:

答案 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];