gpt4 book ai didi

实现 Map 并保持插入顺序的 Java 类?

转载 作者:bug小助手 更新时间:2023-10-28 01:35:51 25 4
gpt4 key购买 nike

我正在寻找具有键值关联但不使用散列的 Java 类。这是我目前正在做的事情:

  1. 将值添加到 Hashtable
  2. 获取 Hashtable.entrySet() 的迭代器。
  3. 遍历所有值并:
    1. 为迭代器获取一个 Map.Entry
    2. 根据值创建一个 Module 类型的对象(自定义类)。
    3. 将类添加到 JPanel。
  4. 显示面板。

问题在于我无法控制取回值的顺序,因此我无法按给定顺序显示值(没有硬编码顺序)。

我会为此使用 ArrayListVector,但稍后在代码中我需要获取给定 Key 的 Module 对象,我无法使用 ArrayListVector

有没有人知道可以执行此操作的免费/开源 Java 类,或者根据添加时间从 Hashtable 中获取值的方法?

谢谢!

最佳答案

我建议 LinkedHashMapTreeMap . LinkedHashMap 保持键的插入顺序,而 TreeMap 通过 Comparator 或自然 Comparable 键的顺序。

由于它不必保持元素排序,LinkedHashMap 在大多数情况下应该更快; TreeMap 对于 containsKeygetput 具有 O(log n) 性能,和 remove,根据 Javadocs,而 LinkedHashMap 对于每个都是 O(1)

如果您的 API 只需要可预测的排序顺序,而不是特定的排序顺序,请考虑使用这两个类实现的接口(interface),NavigableMapSortedMap .这将允许您不会将特定实现泄漏到您的 API 中,并在之后随意切换到这些特定类或完全不同的实现。

关于实现 Map 并保持插入顺序的 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/683518/

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