我熟悉HashMap的工作原理和键值概念。
我知道HashCode方法根据Object的地址和传递的密钥生成哈希码。
但我想知道它是如何在恒定时间插入和搜索的,即O(1)
我需要详细了解调用put()方法和get()方法时实际发生的情况。什么是哈希码值,它给了我在O(1)时间内获取值的能力。
答案 0 :(得分:1)
hashCode
可以在O(1)时间内计算,并且基于hashCode
,您将映射到数组的索引。数组的每个索引都包含一个条目的链接列表,其键被映射到相同的索引(或存储桶)。映射的维护方式使每个链表中的平均元素数保持不变,这意味着根据其键的hashCode
在HashMap中查找条目需要花费O(1)的时间。 p>