public class Test {
public static Map<String, List<Integer>> convert(List<Map<String, Integer>> list) {
return list.stream()
.flatMap(x -> x.entrySet().stream())
.collect(Collectors.toMap(y -> y.getKey(), v -> {
ArrayList<Integer> integers = new ArrayList<Integer>();
integers.add(v.getValue());
return integers;
}, (List<Integer> old, List<Integer> xin) -> {//key 冲突处理
old.addAll(xin);
return old;
}));
}
public static void main(String[] args) {
List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();
Map<String, Integer> m1 = new HashMap<String, Integer>();
m1.put("a", 1);
m1.put("b", 2);
m1.put("c", 3);
Map<String, Integer> m2 = new HashMap<String, Integer>();
m2.put("a", 21);
m2.put("b", 22);
m2.put("m", 62);
m2.put("n", 72);
list.add(m1);
list.add(m2);
Map<String, List<Integer>> collect = convert(list);
System.out.println(collect);//{a=[1, 21], b=[2, 22], c=[3], m=[62], n=[72]}
}
}