java - 在 Java 中合并两个 hashMap 对象时如何合并列表

标签 java hashmap

<分区>

我有两个 HashMap 定义如下:

HashMap<String, List<Incident>> map1 = new HashMap<String, List<Incident>>();
HashMap<String, List<Incident>> map2 = new HashMap<String, List<Incident>>();

此外,我还有第三个 HashMap 对象:

HashMap<String, List<Incident>> map3;

和合并列表。

最佳答案

简而言之,你不能。 map3 没有将 map1 和 map2 合并到其中的正确类型。

但是如果它也是一个 HashMap<String, List<Incident>> .你可以使用 putAll方法。

map3 = new HashMap<String, List<Incident>>();
map3.putAll(map1);
map3.putAll(map2);

如果你想合并 HashMap 中的列表。您也可以这样做。

map3 = new HashMap<String, List<Incident>>();
map3.putAll(map1);
for(String key : map2.keySet()) {
    List<Incident> list2 = map2.get(key);
    List<Incident> list3 = map3.get(key);
    if(list3 != null) {
        list3.addAll(list2);
    } else {
        map3.put(key,list2);
    }
}

关于java - 在 Java 中合并两个 hashMap 对象时如何合并列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17607850/

相关文章:

java.lang.ClassCastException : java. util.HashMap 无法转换为自定义数据类

java - 如何在 Hashmap<Hashmap<ArrayList>> 中存储位置索引和文档 ID

Java.util.HashMap —— 为什么 HashMap 扩展 AbstractMap 并实现 Map?

java - 尽管实现了 equals 和 hashcode 方法,Hashmap get 和 containskey 方法仍无法检索对象

java - 获取枚举字段的值

java - 在表或类似的表中使用两个主键

Java 尽可能使方法静态化,好的做法?

java - 检查 HashMap 是否被修改(添加或修改值)

java - 使用 JAXB 使用 namspaces 解码 XML 时为空值

使用 JAR 文件中的类的 Java 程序