比如有一个成绩对象
@Data
public class Chengji {
// 学号
private String studentId;
// 学科
private String subjectId;
// 分数
private Long score;
}现在目标是获取每个学生的总分
// 模拟的成绩列表
List<Chengji> cjs = new ArrayList<>();
// 利用stream流 按 学号 分组,并且将分组内容里的分数相加
Map<String, Chengji> result = cjs.stream().collect(Collectors.toMap(Chengji::getStudentId, Function.identity(), (v1, v2) -> {
v1.setScore(v1.getScore() + v2.getScore());
return v1;
}));如果要去重并排序
List<Chengji> res = cjs.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Chengji::getStudentId))),ArrayList::new)
);
本文介绍如何使用Java Stream API对学生成绩数据进行分组、求和及排序操作。通过具体示例展示如何实现学生总分的计算,并提供去重和排序的方法。
502

被折叠的 条评论
为什么被折叠?



