List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> stu1 = new HashMap<String, Object>();
stu1.put("name", "卫庄");
stu1.put("score", new BigDecimal(80));
list.add(stu1);
Map<String,Object> stu2 = new HashMap<String, Object>();
stu2.put("name", "盖聂");
stu2.put("score", new BigDecimal(90));
list.add(stu2);
Map<String,Object> stu3 = new HashMap<String, Object>();
stu3.put("name", "天明");
stu3.put("score", new BigDecimal(60));
list.add(stu3);
Map<String,Object> stu4 = new HashMap<String, Object>();
stu4.put("name", "卫庄");
stu4.put("score", new BigDecimal(30));
list.add(stu4);
list = list.stream().collect(Collectors.groupingBy(d -> d.get("name"))).values().stream().map(d -> {
Map<String, Object> sampleData = d.get(0);
sampleData.put("score", d.stream().map(s -> new BigDecimal(s.get("score").toString())).reduce(BigDecimal.ZERO, BigDecimal::add));
return sampleData;
}).collect(Collectors.toList());
System.out.println(list);