HashMap 在 Java 中如何工作

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 键不可变的原因,例如字符串),并且我们最终位于相同的存储桶位置。

如果只有一个对象,则返回该对象,这就是您之前存储的值对象。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值