/**
*
* @param m1
* @param m2
* @param string 根据某个key来合并
* @return
*/
public static List<Map<String,Object>> merge(List<Map<String,Object>> m1,List<Map<String,Object>> m2,String string){
m1.addAll(m2);
Set<String> set = new HashSet<>();
return m1.stream().collect(Collectors.groupingBy(o -> {
//暂存所有key
set.addAll(o.keySet());
return o.get(string);
})).entrySet().stream().map(o->{
//合并
Map<String,Object> map =o.getValue().stream().flatMap(m ->{
return m.entrySet().stream();
}).collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,(a,b)->b));
//为没有key的赋值0
set.stream().forEach(k->{
if(!map.containsKey(k))
map.put(k,0);
});
return map;
}).collect(Collectors.toList());
}