gpt4 book ai didi

java - 我应该使用什么类型的列表/ map 来对数据进行分类但保持顺序?

转载 作者:行者123 更新时间:2023-12-01 22:32:26 25 4
gpt4 key购买 nike

我有以下数据对象:

MyObject {
priority (e.g. HIGH, LOW, ...)
information
}

我需要以正确的顺序保存它们,以便在必要时对其进行迭代。

有时我还需要仅获取优先级为高或低的数据(也以正确的顺序)。

如果我使用列表(例如 ArrayList),我将必须迭代每个数据对象来搜索我的优先级。

如果我使用Map<Priority, List<Information>>我会失去两个不同优先级中的信息之间的顺序。

数据输入示例:

  1. 低,“你好1”
  2. 高,“Hello2”
  3. 低,“World3”
  4. 高,“World4”

期望的结果:

printData() -> Hello1, Hello2, World3, World4
printLow() -> Hello1, World3
printHigh() -> Hello2, World4

哪种数据结构最能满足我的要求? (Java)

最佳答案

如果迭代列表确实太慢,那么维护两个并行集合:

  • 一个List<Information>按顺序迭代所有信息,
  • 和一个Map<Priority, List<Information>>迭代给定优先级的信息。

只有当我有一个经过验证的性能问题并且我已经证明它是由所有信息列表的迭代引起的时,我才会这样做。否则,过早的优化会使代码更难维护和正确,特别是在集合是可变的情况下。

关于java - 我应该使用什么类型的列表/ map 来对数据进行分类但保持顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458493/

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