我正在经历Rehashing process in hashmap or hashtable 这解释了美丽的概念 HashMap重组。 我有一个问题。
考虑HashMap的初始容量为16且负载因子为0.75的情况。现在,有12个元素被添加到HashMap中,但由于hashCode
实现不佳,它们最终都在同一个桶中。其他15个桶不包含任何元素。 HashMap会重新出现吗?
答案 0 :(得分:1)
实际上,至少在HashMap的当前实现中,冲突不会影响重新散列。例如,请参阅HashMap.putVal
末尾的lines 661-662,只需检查
if (++size > threshold)
resize();
其中threshold is (capacity * load factor),缓存在字段中以提高速度(避免浮点运算)。
HashMap处理过多的存储桶by converting the buckets from linked lists to balanced trees。