java stream 根绝学生信息中班级id 比较。赋值班级名称信息
时间: 2024-12-18 19:33:55 浏览: 2
spring boot v2+vue,根绝ruoyi改版
在Java Stream API中,如果你想根据学生的班级ID获取并更新他们的班级名称,首先你需要一个集合(如List<Student>)存储学生信息,每个学生对象包含姓名和班级ID(以及一个代表班级名称的对象)。假设我们有一个Student类和一个ClassInfo类,你可以这样做:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
// 假设Student类有name和classId属性,ClassInfo类有id和name属性
public class Student {
private String name;
private int classId;
// 省略getter和setter
}
public class ClassInfo {
private int id;
private String name; // 类似于数据库中的班级名
// 省略getter和setter
}
List<Student> students = ... // 存储学生信息的列表
// 创建一个Map将班级ID映射到班级名称
Map<Integer, ClassInfo> classNameMap = classInfoList.stream()
.collect(Collectors.toMap(ClassInfo::getId, ClassInfo::getName));
// 使用Stream流操作更新学生列表中的班级名称
students.forEach(student -> {
student.setClassName(classNameMap.getOrDefault(student.getClassId(), "未知班级"));
});
```
在这个例子中,`getOrDefault`方法用于处理学生班级ID不存在的情况,默认返回"未知班级"。
阅读全文