gpt4 book ai didi

java - 使用 values() 方法从 LinkedHashMap 获取条目的 LinkedList

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:10 26 4
gpt4 key购买 nike

我正在尝试了解是否可以从链接的 HashMap 中获取条目的链接列表。我可以获得 entrySet(),然后使用迭代器遍历插入顺序中的每个条目。这将为我提供插入顺序中条目的链接列表。

如果我使用 values() 方法,我能保证得到相同的结果吗?

最佳答案

从 Java 8 开始,让我们看一下 LinkedHashMap 的来源.我们可以从 entrySet() 中推导出内部行为和 values()方法定义:

  • entrySet() 方法在第 627 行返回 new LinkedEntrySet(),该行使用 new LinkedEntryIterator() 作为迭代器634.
  • values() 方法在第 581 行返回 new LinkedValues(),该行使用 new LinkedValueIterator() 作为迭代器588.

现在,让我们看看在同一个文件中从第 737 行开始定义的那些内部类的源代码:

final class LinkedValueIterator extends LinkedHashIterator
implements Iterator<V> {
public final V next() { return nextNode().value; }
}

final class LinkedEntryIterator extends LinkedHashIterator
implements Iterator<Map.Entry<K,V>> {
public final Map.Entry<K,V> next() { return nextNode(); }
}

它们都扩展了 LinkedHashIterator,这意味着使用 entrySet() 将以相同的方式处理映射值的访问。和 values() .

关于java - 使用 values() 方法从 LinkedHashMap 获取条目的 LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611999/

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