关于HashMap put()和get()方法如何工作的内部结构(仅基本逻辑)

Gee*_*eek 6 java hashtable hashmap data-structures

当我们在HashMap类使用put()方法中放置一个键实例说"key"和一个Value实例说"value"时,HashMap该类在内部做了什么.当我们说时,它如何检索价值hashMap.get(key)

编辑:我不想在这里详细介绍,基本上是想了解更大的图景equals()以及hashcode()方法put()get()操作的作用.

ami*_*ngh 18

如果您谈谈更高的画面就如同below.Here我指项目作为keyMap

放物品时.

  1. 计算hashcode关键
  2. 如果baskethashcode存在,则使用equals该密钥的方法查询的密钥I的篮子,以确定该元件将被添加或替换.
  3. 如果没有,那么创建新的篮子(rehashing)并将该元素添加到该篮子中.

得到:

  1. 获得hashcode关键
  2. 去那个篮子
  3. 迭代使用equals键将返回该篮子中的元素.