gpt4 book ai didi

java - 有人可以向我解释一下 hashmap get(key) 方法的代码吗?

转载 作者:行者123 更新时间:2023-12-01 14:15:17 26 4
gpt4 key购买 nike

在Java的get(Object key)方法中,有一段我无法理解的代码。

即使两个对象的哈希码相同,我也知道 get(key) 方法如何工作。

但是下面的代码我无法理解。

for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}

谁能解释一下。谢谢

最佳答案

HashMap 适用于 Hash bucket algorithm 。哈希桶被排列为数组,HashMap 类将其称为table。因此 for 循环从保存 key

的哈希桶的第一个元素开始
Entry<K,V> e = table[indexFor(hash, table.length)

此处的哈希表示该存储桶的哈希索引

<小时/>

for 循环将一直运行,直到存储桶中有元素为止 (e != null)

<小时/>

for 循环将像 e = e.next 一样进行迭代,即移动到存储桶中的下一个元素,直到找到匹配项

<小时/>

现在,一旦找到哈希桶,该方法应该返回其键与传递的匹配的确切条目。现在,此匹配是通过引用匹配 ( == ) 或等于匹配 (k = e.key) == key 完成的|| key.equals(k)

如果匹配,则返回 key ,否则该方法将返回null

关于java - 有人可以向我解释一下 hashmap get(key) 方法的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com