我有一个多图,我用hasnext()
迭代它。
Set keySet = myMap.keySet();
Iterator keyIterator = keySet.iterator();
while (keyIterator.hasNext() ) {
Integer key = (Integer) keyIterator.next();
System.out.println("K"+key);
List values = (List) myMap.get(key);
System.out.println("V"+values);
}
输出是:
K = 4,
V = [Sam India],
K = 3,
V = [Sam,Sam US],
K = 5,
V = [Sam]
但我需要反向格式的输出,如:
K = 5,
V = [Sam],
K = 3,
V = [Sam,Sam US],
K = 4,
V = [Sam India]
我们可以在multimap中使用hasPrevious()吗?
答案 0 :(得分:1)
你真的应该开始使用泛型。
最简单的黑客可能是使用
ArrayList<List<?>> list = new ArrayList<>(keySet);
ListIterator<List<?>> iter = list.listIterator(list.size() - 1);
然后向后迭代。但是,这将序列化该集合,因此它是O(n)
额外的内存。
答案 1 :(得分:0)
其中一个选项是获取地图的大小,并从最后一个索引开始以相反的顺序检索记录。你想只使用Iterator吗?或者,您可以编写自定义迭代器以获得所需的功能。