List<Map<String, Integer>> 遍历相加 list 遍历 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么意思。。d和d相加,a和a相加吗? public static Map<String, Integer> add(List<Map<String, Integer>> list) { Map<String, Integer> map = new HashMap<String, Integer>(); for (Map<String, Integer> maptemp : list) { for (Entry<String, Integer> entry : maptemp.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); if (map.containsKey(key)) { map.put(key, map.get(key) + value); } else { map.put(key, value); } } } return map; } import java.util.*;public class IteratorTest { public static void main(final String[] args) { List<Map<String, Integer>> list1 = new ArrayList<>(); list1.add(new HashMap() { { put("d", 2); put("a", 3); put("c", 1); put("b", 1); } }); list1.add(new HashMap() { { put("d", 21); put("a", 34); put("c", 12); put("b", 13); } }); List<Map<String, Integer>> list2 = new ArrayList<>(); list2.add(new HashMap() { { put("d", 0); put("a", 0); put("c", 0); put("b", 0); } }); add(list1, list2); print("list1:", list1); print("list2:", list2); } public static void add( List<Map<String, Integer>> list1, List<Map<String, Integer>> list2) { if (list1 == null || list2 == null) { return; } list1.stream().forEach((list1Element) -> { list1Element.keySet().stream().forEach((list1ElementMapKey) -> { if (list2.get(0).containsKey(list1ElementMapKey)) { list2.get(0).put(list1ElementMapKey, list1Element.get(list1ElementMapKey) + list2.get(0).get(list1ElementMapKey)); } else { list2.get(0).put(list1ElementMapKey, list1Element.get(list1ElementMapKey)); } }); }); } public static void print( String listName, List<Map<String, Integer>> list) { System.out.println(listName + "Start"); list.stream().forEach((listElement) -> { listElement.keySet().stream().forEach((listElementMapKey) -> { System.out.println( " " + listElementMapKey + ":" + listElement.get(listElementMapKey)); }); }); System.out.println(listName + "End"); }}输出:list1:Start a:3 b:1 c:1 d:2 a:34 b:13 c:12 d:21list1:Endlist2:Start a:37 b:14 c:13 d:23list2:End 你是list 与 list 相加是吧。我要是一个 list 内部相加。 有没有高手愿意加Q帮解决Java问题的啊 为什么不要继承一个实现好的类,而要继承抽象类或接口 一道SCJP的题目,高手来帮忙看下 java Thread.sleep()的问题 遇到的JAVA问题 大家来看看 顺便祝大家5 1节快乐 数据库错误 初学java,想做一记事本,不知道怎么实现“打开”部分?求助! 几道SCJP题----那位高手指点一下(在线等) java编程JPanel上加JPanel,为什么设了null布局之后什么都不显示 Java中Server的线程问题 java数组匹配求算法 关于Bigdecimal对象divide方法的问题
d和d相加,a和a相加吗?
public static Map<String, Integer> add(List<Map<String, Integer>> list) {
Map<String, Integer> map = new HashMap<String, Integer>();
for (Map<String, Integer> maptemp : list) {
for (Entry<String, Integer> entry : maptemp.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
if (map.containsKey(key)) {
map.put(key, map.get(key) + value);
} else {
map.put(key, value);
}
}
}
return map;
}
import java.util.*;public class IteratorTest { public static void main(final String[] args) {
List<Map<String, Integer>> list1 = new ArrayList<>();
list1.add(new HashMap() {
{
put("d", 2);
put("a", 3);
put("c", 1);
put("b", 1);
}
});
list1.add(new HashMap() {
{
put("d", 21);
put("a", 34);
put("c", 12);
put("b", 13);
}
}); List<Map<String, Integer>> list2 = new ArrayList<>();
list2.add(new HashMap() {
{
put("d", 0);
put("a", 0);
put("c", 0);
put("b", 0);
}
});
add(list1, list2); print("list1:", list1);
print("list2:", list2);
} public static void add(
List<Map<String, Integer>> list1,
List<Map<String, Integer>> list2) {
if (list1 == null || list2 == null) {
return;
} list1.stream().forEach((list1Element) -> {
list1Element.keySet().stream().forEach((list1ElementMapKey) -> {
if (list2.get(0).containsKey(list1ElementMapKey)) {
list2.get(0).put(list1ElementMapKey,
list1Element.get(list1ElementMapKey)
+ list2.get(0).get(list1ElementMapKey));
} else {
list2.get(0).put(list1ElementMapKey,
list1Element.get(list1ElementMapKey));
}
});
});
} public static void print(
String listName,
List<Map<String, Integer>> list) {
System.out.println(listName + "Start");
list.stream().forEach((listElement) -> {
listElement.keySet().stream().forEach((listElementMapKey) -> {
System.out.println(
" " + listElementMapKey
+ ":" + listElement.get(listElementMapKey));
});
});
System.out.println(listName + "End");
}
}
输出:
list1:Start
a:3
b:1
c:1
d:2
a:34
b:13
c:12
d:21
list1:End
list2:Start
a:37
b:14
c:13
d:23
list2:End
你是list 与 list 相加是吧。我要是一个 list 内部相加。