stream流对单个或多个字段进行汇总
//首先查询出你的list,例如
List<Student> students = studentMpper.select();
//然后根据字段排序, 例如根据名称 name字段
Map<String,List<Student>> map = student.stream().collect(Collectors.groupingBy(Student::getName()));
//然后按多个字段排序,例如根据名称和年龄
Map<String.List<Strudent>> map = students.stream().collect(Collectors.groupingBy(S -> S.getName() +"_"+S.getAge()));
//汇总完如果想根据某个字段进行汇总,例如根据成绩汇总score
//这里可能要用两个for循环
int score = 0;
for(Map.Entry<String,List<Student>> m : map.entrySet()){
for(Student studente: m.getValue()){
score += student.getScore();
}
}
//感觉汇总值还有点麻烦,不知道还有没有更简单的办法。 欢迎下面留言(小白一枚,有错请及时指出。)
原文作者:lihao_zhengzhou1
原文地址: https://blog.csdn.net/lhgojob/article/details/109532713
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/lhgojob/article/details/109532713
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章