gpt4 book ai didi

java - 为什么 loadfactor 是 0.75

转载 作者:行者123 更新时间:2023-11-30 11:14:04 25 4
gpt4 key购买 nike

我正在从 ConcurrentHashMap 的 javadoc 中阅读这篇文章

当有太多冲突时,表会动态扩展(即,具有不同哈希码但落入同一个槽中的表大小为模的键),预期平均效果是每个映射保持大约两个 bin(对应于调整大小的 0.75 负载因子阈值)。

如果每个映射(key->value)是两个 bin,那么加载因子不是 0.5,而不是 0.75 吗?

最佳答案

拆分 bin 的成本非常高,它会在 Map 的整个运行时分摊。目标阈值(调整大小后) 0.5。但是,拆分 bin 的触发阈值为 0.75(大概是因为 0.75 是 0.5+(0.5/2),大 50%)。所需的 bin 数量取决于冲突的数量和 hashCode() 算法的效率,但假设冲突很少见(因为 hashCode() 分布 key 很好)。

关于java - 为什么 loadfactor 是 0.75,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26112957/

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