最干净的方法是什么?
我有
Map<String, List<String>> map1 = ...;
Map<String, List<String>> map2 = ...;
Map<String, List<String>> map3 = ...;
所有 map 都具有完全相同的键,并且没有重复的值。我想为每个键将 map2 和 map3 的列表附加到 map1 列表的末尾。
这就是我目前正在尝试的方式:
Map<String, List<String>> conversions = new HashMap<String, List<String>>();
List<String> histList = new ArrayList<String>();
for(String key : map1.keySet()){
histList.addAll(map1.get(key));
histList.addAll(map2.get(key));
histList.addAll(map3.get(key));
conversions.put(key,histList);
}
最佳答案
如果你不想做一个临时列表,你可以直接添加到列表一,而不是替换它。
for (String key: map1.keySet()) { //iterate over all the keys
map1.get(key).addAll(map2.get(key)); //add all the values in map 2 to map 1
map1.get(key).addAll(map3.get(key)); //add all the values in map 3 to map 1
}
关于java - 通过使用相同名称的键连接列表来组合多个 Map<String,List> 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868343/