如果Hashmap在内部使用链表,为什么它需要增加容量

时间:2016-06-24 17:46:27

标签: java performance hashmap bucket

如果Hashmap在内部使用链表,为什么它需要增加容量。如果我们一直在增加桶,那么许多桶将保持为空,负载因子为0.75?

1 个答案:

答案 0 :(得分:0)

HashMap始终不使用LinedList,它使用数组。对于例如如果创建一个新的hashmap对象,则创建大小为16的数组。每个索引包含4个部分,包含键,值,哈希码,下一个。

当碰撞(相同的哈希码)发生时,LinedList在索引中形成,这个概念称为单独链接。 对于例如如果你在具有相同哈希码的地图对象中放置2个对象,则会发生单独的链接,否则将创建2个桶。