繁体   English   中英

为什么HashMap中较高的加载因子会减少空间开销

[英]Why would a higher load factor in HashMap decrease the space overhead

来自java文档:“作为一般规则,默认加载因子(.75)在时间和空间成本之间提供了良好的折衷。 较高的值会减少空间开销,但会增加查找成本”

为什么减少空间开销? 桶中的额外节点是不是具有相同大小的额外数组大小?

(最后,参赛作品的数量会相同!)

载荷因子控制地图在容量加倍之前可以变得多满。

假设你有一个理想的哈希函数,在桶之间有适当的分散。 假设您有一个容量为100且载荷系数为0.75的地图。 这意味着当你添加元素来填充75个桶时,它的分配容量加倍,即变为200.因此,对于75个实际桶,你已经分配了200个容量。开销即浪费的空间= 125

现在,假设我们有另一张容量为100且载荷系数为0.5的地图。 这意味着,当地图填充50个实际存储桶时,它的容量会翻倍。 因此,对于50个条目,容量现在为200.开销= 150。

具有更高的负载能力会发生相反的情况,即您浪费的空间更少。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM