首页 > 解决方案 > hashmap 如何识别何时需要重新散列

问题描述

Hashmap 如何识别此存储桶已满并且需要重新散列,因为如果两个哈希码相同,它将值存储在链表中,然后根据我的理解,此链表没有任何固定大小,它可以存储尽可能多的元素所以这个桶永远不会满,那么它将如何识别它需要重新散列?

标签: javahashmap

解决方案


Hashmap在向hashmap插入数据和从hashmap获取数据的过程中保持了O(1)的复杂度,但是对于第13个键值对,put request将不再是O(1),因为一旦map意识到第13个元素进来了,即 75% 的地图已填满。

它将首先将存储桶(数组)容量加倍,然后再进行 Rehash。重新散列需要重新计算已经放置的 12 个键值对的哈希码,并将它们放在新的索引处,这需要时间。

请参考此链接,这将对您有所帮助。


推荐阅读