gpt4 book ai didi

java - 当Java的HashMap重新散列时,散列码的分布如何影响?

转载 作者:行者123 更新时间:2023-12-01 10:44:51 26 4
gpt4 key购买 nike

我正在经历Rehashing process in hashmap or hashtable这解释了这个美丽的概念HashMap 重新哈希。我有一个疑问。

考虑HashMap初始容量为16、负载因子为0.75的情况。现在,HashMap 中添加了 12 个元素,但由于 hashCode 实现不佳,它们最终都位于同一个存储桶中。其他 15 个桶不包含任何元素。 HashMap 会重新散列吗?

最佳答案

实际上,至少在当前的 HashMap 实现中,冲突不会影响重新哈希。例如,参见lines 661-662HashMap.putVal 的末尾,它只是检查

if (++size > threshold)
resize();

哪里threshold is (capacity * load factor) ,缓存在字段中以提高速度(避免浮点运算)。

HashMap 处理满桶 by converting the buckets from linked lists to balanced trees .

关于java - 当Java的HashMap重新散列时,散列码的分布如何影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34248284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com