作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 map 列表。
List<Map<String,String>> catDataToCache = new ArrayList();
List<Map<String,String>> catDataToCache2 = new ArrayList();
每张 map 都是这样的
map('referer'=>'abc.com','category'=>'def.com')
我必须合并这两个。我试过List.addAll();
但是我得到了一个乱码的集合。
最佳答案
我相信您正在尝试合并两个或多个 Map
的映射。如果是这样,您可以使用 Map#putAll()
执行此操作,而不涉及 List
,除非 Map
实际上存储在其中,这似乎不太可能.
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
<小时/>如果您实际上是在
List
中获取
Map
,只需对其进行迭代,然后对每个
使用 putAll()
,如上所示> 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());
}
关于java - 如何在java中合并 map 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19225889/
我是一名优秀的程序员,十分优秀!