解决方案 »

  1.   

    什么意思。。
    d和d相加,a和a相加吗?
      

  2.   


           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;
    }
      

  3.   


    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
      

  4.   


    你是list 与 list 相加是吧。我要是一个 list 内部相加。