簡體   English   中英

Java中的反向多圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM