0

我有一个多图,我用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=[萨姆印度],

K=3,

V=[山姆,美国山姆],

K=5,

V=[山姆]

但我需要反向格式的输出,例如:

K=5,

V=[山姆],

K=3,

V=[山姆,美国山姆],

K=4,

V=[萨姆印度]

我们可以在 multimap 中有 hasPrevious() 吗?

4

2 回答 2

1

你真的应该开始使用泛型。

最简单的黑客可能是使用

ArrayList<List<?>> list = new ArrayList<>(keySet);
ListIterator<List<?>> iter = list.listIterator(list.size() - 1);

然后向后迭代。但是,这将序列化集合,因此它是O(n)额外的内存。

于 2013-03-19T08:07:13.630 回答
0

一种选择是获取地图的大小,并以相反的顺序检索记录,从最后一个索引开始。您只想使用迭代器吗?或者您可以编写自定义迭代器来获得所需的功能。

于 2013-03-19T07:58:08.680 回答