HashMap 的工作原理是散列,我们有put()和get()方法用于从 HashMap 中存储和检索对象。当我们将键和值传递给 put() 方法以存储在 HashMap 上时,它使用键对象的 hashcode()方法来计算哈希码,并通过对该哈希码应用哈希来识别存储值对象的存储桶位置。
在检索时,它使用键对象的 equals 方法来找出正确的键值对并返回与该键关联的值对象。HashMap使用链表来防止碰撞,对象将存储在链表的下一个节点中。
此外,HashMap以 Map.Entry 对象的形式将键元组和值元组存储在链表的每个节点中。
Java 中的 HashMap 遵循哈希原理。
如果我们知道密钥,它是一种数据结构,允许我们在恒定时间O(1) 内存储和检索对象。
在哈希中,哈希函数用于链接HashMap中的键和值。
通过调用HashMap 的 put(key, value)方法来存储对象,并通过调用get(key)方法来检索对象。
当我们调用put方法时,会调用key对象的hashcode()方法,这样map的hash函数就能找到一个bucket位置来存储value对象,
它实际上是内部数组的一个索引,称为桌子。HashMap 内部以Map.Entry对象的形式存储映射,该对象同时包含键和值对象。
当您想要检索该对象时,您可以调用get() 方法并再次传递关键对象。
这一次,键对象再次生成相同的哈希码(必须这样做才能检索对象,这就是 HashMap 键不可变的原因,例如字符串),并且我们最终位于相同的存储桶位置。
如果只有一个对象,则返回该对象,这就是您之前存储的值对象。