for (Entry<Double, String> entry : map.entrySet()) {
Double key = entry.getKey();
String value = entry.getValue();
// double nextKey = ?
// String nextvalue = ?
// double prevKey = ?
// String prevValue = ?
}
迭代地图时是否可以知道上一个元素和下一个元素是什么?
您可以NavigableMap
为此使用,它entrySet()
的迭代器以升序顺序返回条目:
NavigableMap<Double, String> myMap = new TreeMap<>();
//...
for (Map.Entry<Double, String> e : myMap.entrySet()) {
Map.Entry<Double, String> next = myMap.higherEntry(e.getKey()); // next
Map.Entry<Double, String> prev = myMap.lowerEntry(e.getKey()); // previous
// do work with next and prev
}
每个条目检索都是O(logN),因此对于完整迭代而言,这不是最有效的方法。为了更有效,在迭代时只需记住最后3个条目,并使用1st作为上一个,2nd作为当前和3nd作为下一个,如@Malt建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句