【java8】对list进行分组求和


场景

有一个student类,name是姓名,score是分数,现在要统计每位学生的总成绩

方法一

studentList.stream().collect(Collectors.toMap(Student::getName, Student::getScore, Integer::sum));

方法二

List<student> studentList = new ArrayList<>();
studentList.stream()
       .collect(Collectors.groupingBy(Student::getName, Collectors.collectingAndThen(
           Collectors.summarizingDouble(Student::getScore), DoubleSummaryStatistics::getSum)));

方法三

List<student> studentList = new ArrayList<>();
studentList.stream()
       .collect(Collectors.groupingBy(Student::getName, Collectors.collectingAndThen(
            Collectors.mapping(Student::getScore, Collectors.reducing(Integer::sum)),
            Optional::get)));
</student></student>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM