我有一堂课
public class Student{
private String name;
private String school;
}
和
Student
对象列表List<Student> students = new ArrayList();
假设我已经填充了每个
name
对象的Student
字段。现在,我想用相同的值填充每个对象的学校字段,例如“ XYZ school”。如何使用Java 8 stream()做到这一点?
我尝试了以下方式,但它给出了错误。
List<Student> xyzStudent = students.stream()
.map(o -> o.setSchool("XYZ school"));
我应该在那里使用
map
还是其他?以及如何在xyzStudent
中收集结果? 最佳答案
首先,即使是在Java 8中,每个循环的旧版本也没有错:
for (Student s : students) {
s.setSchool("XYZ school");
}
您可以使用foreach终端操作来实现相同的行为。
students.stream().forEach(s -> s.setSchool("XYZ school"));
尽管有人说在forEach中对流执行的操作应该没有副作用。
关于java - 如何使用Java 8流向列表中的项目字段添加值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31990366/