关于hashmap的实现原理的学习

xiaoxiao2025-04-23  12

  Hashmap是由一个Entry数组及链表实现的,当使用put(key, value)将键值对存储到Map中时,首先会调用hashCode()方法获取hashCode,并对数组长度取余找到在数组上的存储位置,然后判断该位置上上是否有元素,没有的话创建Entry对象存入该位置,有的话先判断该位置的链表有没有该key,有的话将该key所在的value改变为新的value,没有的话创建Entry对象并存储到该位置,并令该Entry的next等于之前的Entry对象;当我们使用get(key)获取对象时,首先调用hashCode()返回hashCode,从而找到bucket位置,然后调用keys.equals()方法找到链表中的正确位置,最后返回该对象。

 

 

  即为当存储键值对时,先寻找数组上的存储位置并判断是否有元素,若无就创建一个新的Entry对象,有的话就判断链表中是否有该key,若有的话就覆盖原value值,没有的话就创建一个对象并存储,并使next游标指向之前的Entry对象

  get方法即为,调用方法获取hashCode,并调用keys。equals方法找到链表中的正确位置并返回value值

转载请注明原文地址: https://www.6miu.com/read-5028971.html

最新回复(0)