Java负载因子权衡

时间:2015-01-27 20:34:33

标签: java performance collections hashmap

我听说,HashMap中的加载因子将桶恢复到其他位置,最好将其保持在0.75,这样当大小接触0.75 *当前容量时,桶阵列重新分配到当前容量的两倍

例如,我们有16个容量;当数组变为16 * 0.75 = 12时,数组会重新分配。此时,我们甚至在数组触及16之前创建额外的16个元素,因为它的内存效率低下。

如果时间有效,那么使用负载因子会有什么折衷方式?

1 个答案:

答案 0 :(得分:1)

当碰撞率较低时,HashMap的效果最佳。容量越大,发生碰撞的可能性就越小。即同一个桶中的两个键。

为了避免高冲突率,使用负载因子来确保底层阵列永远不会超过75%。

BTW与其他开销相比,阵列使用的额外内存很小。