【发布时间】:2016-03-25 00:47:50
【问题描述】:
我尝试浏览文档和堆栈溢出,但无法弄清楚实际编程中维护插入顺序的具体需求。我经历了Java collections maintaining insertion order,但这也不能满足我的好奇心。
我的意思是,过去几年我见过各种代码库和编程,但没有看到人们使用LinkedHashSet,而HashSet 和TreeSet 非常流行,LinkedHashMap 也是如此。那么维护插入顺序真的是一种罕见的需求吗?我知道LinkedHashSet,HashSet, 和TreeSet 之间的区别,但想知道为什么LinkedHashSet 或LinkedHashMap 的使用如此罕见?
我对 LinkedHashSet 和 LinkedHashMap 使用稀有性的评估可能不正确,但这是我在过去几年执行的项目(银行和医疗保健项目)中看到的。通过这个问题,我还希望验证我对 LinkedHashSet 和 LinkedHashMap 的观察是否正确/不正确,或者一般需要维护插入顺序(在使用 Java Collections Framework 时确实需要插入顺序的情况非常罕见)。
【问题讨论】:
-
有趣的问题.. 我认为其中一个用例可能是我们需要在某个地方存储令牌,而这些令牌不是按 FIFO 顺序使用的。
-
我猜在大多数情况下,您只需要按顺序访问或直接访问,而不是两者都需要。在第一种情况下,您将使用
List。
标签: java collections