[英]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
,因為我不想重復values
的key
,我需要保持插入順序
我該如何做才能遍歷以上輸出以進行進一步處理?
返回條目並按照插入順序對其進行迭代,因此您可以執行以下操作以免失去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.