java - 通过使用相同名称的键连接列表来组合多个 Map<String,List> 结构

标签 java dictionary java-8

最干净的方法是什么?

我有

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/

相关文章:

groovy - 使用 Spock 验证非 spy 方法调用

java - 如何处理算法?哪个是首选方式?

java - REST 二进制数据

java - HttpURL 连接! Connection.getInputStream 是 java.io.FileNotFoundException

javascript - 在 React 中使用映射函数之外的变量

java - 除非调用相应的方法,否则 Lambda 主体不会执行

java - 在 Java 中连接到 MySQL 数据库

javascript - 从 json 文件中提取包含数组中值的项目

python - 用于字数缓存的嵌套字典

Java 8 方法引用 : provide a Supplier capable of supplying a parameterized result