可以使用来自myMap.entrySet().iterator()
的迭代器遍历SortedMap
。但是这个迭代器是否保留了排序映射对象的顺序?
SortedMap 接口没有自己的方法来循环访问条目。通过条目迭代排序的标准方法是什么?
可以使用 myMap.entrySet().iterator() 中的迭代器遍历 SortedMap。但是这个迭代器是否保留了排序映射对象的顺序?
是的。请参阅 SortedMap 的 javadocs:
此顺序在迭代排序映射的集合视图(由 entrySet、keySet 和 values 方法返回)时反映出来。
SortedMap 接口没有自己的方法来循环访问条目。通过条目迭代排序的标准方法是什么?
通常的技巧是使用 entrySet()
,并迭代这些Map.Entry
对象。例如:
for (Map.Entry<K,V> entry : theMap.entrySet()) {
K entryKey = entry.getKey();
V entryValue = entry.getValue();
// do whatever with them
}
要回答您的主要问题,是的。通过entrySet
进行迭代将保持秩序。
您可以使用 Java 增强型 foreach 循环:
for(final Entry<K,V> entry : myMap.entrySet(()) {
//do something with entry
}