如何在Java中合并地图列表?

阴影88

我有两个地图清单。

List<Map<String,String>> catDataToCache = new ArrayList();
List<Map<String,String>> catDataToCache2 = new ArrayList();

每张地图看起来像这样

map('referer'=>'abc.com','category'=>'def.com')

我必须合并这两个。我尝试过List.addAll();但是我收到了乱码。

拉维(Ravi K Thapliyal)

我相信您正在尝试合并两个或多个Maps中的映射如果是这样,则可以在Map#putAll()不涉及Lists的情况下使用它除非将Maps实际存储在其中,这似乎不太可能。

Map<String, String> map1 = new HashMap<String, String>();
map1.put("referrer", "abc.com");

Map<String, String> map2 = new HashMap<String, String>();
map2.put("category", "def.com");

Map<String, String> map3 = new HashMap<String, String>();

map3.putAll(map1);
map3.putAll(map2);

for (Map.Entry<String, String> mapping : map3.entrySet()) {
    System.out.println(mapping.getKey() + " = " + mapping.getValue());
}

输出

category = def.com
referrer = abc.com


如果您实际上是将 Map s放入a内 List ,则只需对其进行迭代,然后 putAll() 对每个s都 使用 如上所示 Map 如果有多个这样 List 的,请 Iterator 为每个循环重复执行

List<Map<String,String>> listOfMaps = new ArrayList<Map<String,String>>();

// initialize map1, map2, map3 same as above

listOfMaps.add(map1);
listOfMaps.add(map2);

for (Iterator<Map<String, String>> iterator =
                        listOfMaps.iterator(); iterator.hasNext();) {
    map3.putAll(iterator.next());
}

for (Map.Entry<String, String> mapping : map3.entrySet()) {
    System.out.println(mapping.getKey() + " = " + mapping.getValue());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章