gpt4 book ai didi

java - HashMap内部使用LinkedList

转载 作者:太空狗 更新时间:2023-10-29 23:03:13 26 4
gpt4 key购买 nike

public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
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;
}
return null;
}

我所知道的是,如果你想从HashMap中获取一个对象,首先它会根据哈希码/哈希值搜索哈希桶,然后遍历LinkedList 在那个 hashbucket 中(假设 diff 对象具有相同的 hash code,因此在同一个 hash bucket 中)。

但是看了上面的代码后,我无法理解它何时遍历LinekedList(以及LinkedList在哪里)

最佳答案

实际上是链表。 table 数组是 Entry 元素的数组,每个 Entry 都是一个链表,因为每个条目都知道下一个条目列表,直到当 next 引用为 null 时到达结尾。您展示的 for 循环遍历链表。

它不是 java.util.LinkedList 中的 LinkedList - 它是 map 的单独(更简单)实现。

关于java - HashMap内部使用LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768695/

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