簡體   English   中英

展平SetMultiMap並保留插入順序

[英]Flatten SetMultiMap and preserve the insertion order

我在我的項目中使用LinkedHashMultimap 我需要在保留插入順序的同時平整值。 例如與

SetMultimap<String, Integer> m =  LinkedHashMultimap.create();
m.put("a", 1);
m.put("b",2);
m.put("a",3);

我得到以下輸出

a : [1,3]
b : 2

但是我需要

a : 1
b : 2
a : 3

或者我需要輸出在列表中

[a,1,b,2,a,3]

PS我使用LinkedHashMultimap ,因為我不想重復valueskey ,我需要保持插入順序

我該如何做才能遍歷以上輸出以進行進一步處理?

返回條目並按照插入順序對其進行迭代,因此您可以執行以下操作以免失去Multimaps的好處。

for (Map.Entry<String, Integer> entry : m.entries()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}

您可以在地圖內使用列表來存儲同一鍵的多個值。

    public class Test {

    public static void main(final String[] args) {
        LinkedList<Values> list = new LinkedList<Values>();
        list.add(new Values("a", 1));
        list.add(new Values("b", 2));
        list.add(new Values("a", 3));
        System.out.println(list);
    }
}

class Values {
    String key;
    int value;

    public Values(final String key, final int value) {
        super();
        this.key = key;
        this.value = value;
    }

    @Override
    public String toString() {
        return key + "," + value;
    }
}

該程序的輸出為:

[a,1, b,2, a,3]

我希望這就是你想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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