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
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞