【问题标题】:How to iterate through a SortedMap with same ordering?如何以相同的顺序遍历 SortedMap?
【发布时间】:2012-12-14 16:28:48
【问题描述】:

可以使用来自myMap.entrySet().iterator() 的迭代器来迭代SortedMap。但是这个迭代器是否保留了排序后的地图对象的顺序?

SortedMap 接口没有自己的方法来遍历条目。通过条目迭代 ordered 的标准方法是什么?

【问题讨论】:

  • 正文的第一部分是您问题的答案。
  • 增强的 for 循环怎么样?

标签: java map sortedmap


【解决方案1】:

对于键和条目,标准迭代器保证迭代顺序与键的自然顺序完全相同。这在documentation 中有说明,可以轻松测试。

另一方面,如果您有兴趣以与插入键相同的顺序保留键和条目的迭代顺序,那么您正在寻找LinkedHashMap

【讨论】:

  • 我并没有说你错了,但你怎么能测试呢?我的意思是,插入和迭代一次并发现顺序相同并不能保证下次它会以同样的方式发生,不是吗?
  • 您可能是指(键)“自然顺序”而不是“插入顺序”,对吧?如果你想迭代插入顺序,你需要一个LinkedHashMap
  • @fge 你当然是正确的。我引用了两种地图来扩展我的答案
  • @SJuan76 但是您可以多次重复相同的实验并发现结果符合预期。此外,文档中保证了迭代顺序。
猜你喜欢
  • 1970-01-01
  • 2011-11-02
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多