我有一堂课

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/

10-12 06:31