Hashing的内部工作。 put和get方法实现

时间:2015-04-16 05:23:58

标签: java data-structures collections hashmap

我熟悉HashMap的工作原理和键值概念。

我知道HashCode方法根据Object的地址和传递的密钥生成哈希码。

但我想知道它是如何在恒定时间插入和搜索的,即O(1)

我需要详细了解调用put()方法和get()方法时实际发生的情况。什么是哈希码值,它给了我在O(1)时间内获取值的能力。

1 个答案:

答案 0 :(得分:1)

hashCode可以在O(1)时间内计算,并且基于hashCode,您将映射到数组的索引。数组的每个索引都包含一个条目的链接列表,其键被映射到相同的索引(或存储桶)。映射的维护方式使每个链表中的平均元素数保持不变,这意味着根据其键的hashCode在HashMap中查找条目需要花费O(1)的时间。 p>