这是我的迭代器地图,根据某些条件删除一些数据,现在我想反向运行相同的地图并相应地调整条件。
但我找不到任何ListIterator
可以轻松返回。
我该如何解决这个问题?
我正在使用的Map
实施是TreeMap
for(int i=countIteration;i<(countIteration+2);i++)
{
Iterator it = imageFilexxSm.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
if(pairs.getKey().equals(data1.get(i).replace(".png", ".mp3")))
{
it.remove();
}
}
Iterator itr = imageFilexxS.entrySet().iterator();
while (itr.hasNext()) {
Map.Entry pairsx = (Map.Entry)itr.next();
if(pairsx.getKey().equals(data1.get(i)))
{
System.out.println("entry deleted."+pairsx.getKey());
itr.remove();
}
}
}
答案 0 :(得分:18)
TreeMap
有descendingMap
method(请注意,它会返回原始地图上的视图,但不会复制它):
//iterate over the entry set in reverse order
for (Map.Entry<X,Y> e : map.descendingMap().entrySet()) {
X key = e.getKey();
Y value = e.getValue();
}