如何使用 Java 将数据行形式转换为按班级和学生 ID 分组的列形式?

ID:17237 / 打印

如何使用 java 将数据行形式转换为按班级和学生 id 分组的列形式?

java 中将数据行形式转换为列形式

给定一个包含班级、学生id、科目和分数的数据集,要求将其转换为按班级和学生id分组,科目和分数作为列的形式。

要实现此转换,可以使用 java 的 stream、collect 和 groupingby 操作:

// 源数据 List<Record> records = ...  // 按班级和学生 ID 分组 Map<String, Map<Integer, List<Record>>> groupedRecords =     records.stream()         .collect(groupingBy(Record::getClass, groupingBy(Record::getStudentId)));  // 创建结果列表 List<Result> results = new ArrayList<>();  // 遍历分组后的数据,构建结果 for (Map.Entry<String, Map<Integer, List<Record>>> classEntry : groupedRecords.entrySet()) {     for (Map.Entry<Integer, List<Record>> studentEntry : classEntry.getValue().entrySet()) {         Result result = new Result();         result.setClass(classEntry.getKey());         result.setStudentId(studentEntry.getKey());          // 填充科目和分数         for (Record record : studentEntry.getValue()) {             switch (record.getSubject()) {                 case "English":                     result.setEnglish(record.getScore());                     break;                 case "Math":                     result.setMath(record.getScore());                     break;                 case "PE":                     result.setPe(record.getScore());                     break;             }         }          // 添加到结果列表         results.add(result);     } }

最终,results 列表将包含按班级和学生id分组的记录,科目和分数作为列形式展示。

立即学习“Java免费学习笔记(深入)”;

上一篇: 使用 Apache Kafka 时,org.apache.kafka 和 org.apache.kafka-clients 依赖项有什么区别?
下一篇: ArrayList和LinkedList:什么时候该用谁?

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。