HashMap底层数组的扩容

2023-12-31  本文已影响0人  JAVA加油

在 HashMap 中,当存储的键值对数量超过了负载因子乘以哈希表容量的阈值,即达到了扩容的条件,就会触发数组的扩容操作。具体的数组扩容过程如下:

创建一个新的大小为原始容量的两倍的数组,称为新表(new table)。

遍历原始表(old table)中的每个桶。

将原始表中每个非空桶中的键值对重新计算哈希值,并根据新表的长度找到新的位置,将键值对插入到新表的对应桶中。

如果原始表中的桶包含链表或树,则在新表中也使用相同的数据结构进行存储。

扩容完成后,新表取代原始表成为 HashMap 的内部存储结构。

通过扩容操作,HashMap 可以保持较低的填充因子,减少哈希冲突的概率,提高插入和查找的性能。

上一篇下一篇

猜你喜欢

热点阅读