如何将两个List <map>合并/更新为一个

时间:2018-11-09 10:10:05

标签: java collections java-stream

我有2个列表:

        List<Map<String, String>> data1 = new ArrayList<>();
         Map<String, String> m1 = new HashMap(){};
         m1.put("key1","value1")
         Map<String, String> m2 = new HashMap(){};
         m2.put("key2","value2")
        data1.add(m1)
        data1.add(m2)

        List<Map<String, String>> data2 = new ArrayList<>();
         Map<String, String> m22 = new HashMap(){};
         m22.put("key2","chavgedValues2")
        data2.add(m1)
        data2.add(m22)

合并后,我希望包含以下内容的列表:

"key1","value1"
"key2","chavgedValues2" 

将这两个列表合并为一个的最佳方法是什么?就像我可以实现迭代器一样,但我认为应该有一个更简单的选择,例如流。 还应该有一个条件,即如果data1中的Entry.Key与data2中的Entry.Key相等,则只能从数据2中获取映射。类似SQL Joiner。

1 个答案:

答案 0 :(得分:0)

data1.addAll(data2);

这将是最简单的方法,但是您将无法有条件地检查两个或多个地图中是否存在相同的Key。

因此,我将使用迭代器和循环手动进行操作。我看不到流功能会使它变得更容易。