[英]reverse multimap in java
我有一個多圖,並使用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 = [山姆]
但是我需要反向格式的輸出,如:
K = 5,
V = [Sam],
K = 3,
V = [Sam,Sam US],
K = 4,
V = [山姆印度]
我們可以在多重地圖中使用hasPrevious()嗎?
您確實應該開始使用泛型。
最簡單的技巧可能是使用
ArrayList<List<?>> list = new ArrayList<>(keySet);
ListIterator<List<?>> iter = list.listIterator(list.size() - 1);
然后向后迭代。 但是,這將序列化集合,因此它是O(n)
額外的內存。
選項之一是獲取地圖的大小,並從最后一個索引開始以相反的順序檢索記錄。 您是否只想使用Iterator? 或者,您可以編寫自定義迭代器以獲得所需的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.