Java流:将一个对象的列表转换为另一个

时间:2020-05-21 18:51:08

标签: java-8 java-stream

我正在尝试在Stream中学习地图功能

public class EmployeeInformationTest {
   public static void main(String args[]) {
      List<Employee> employees = Arrays.asList(
         new Employee("Jai"),
         new Employee("Adithya"),
         new Employee("Raja"));
      List<String> names = employees.stream()
         .map(s -> s.getEmployeeName())              // Lambda Expression
         .collect(Collectors.toList());
      System.out.println(names);
   }
}

我们有上面的代码,并且以某种方式从雇员列表中提供了字符串列表。说,我们还有另一个类Person,其中我们的字段为名称

public class Person {
    private String name;
}

所以通过map或流中的其他函数是否可行,这样我就可以在上面的代码中获得Person列表而不是String列表

1 个答案:

答案 0 :(得分:2)

确定,只需将map函数更改为:

.map(s -> new Person(s.getEmployeeName()))   

或没有这样的构造函数:

.map(s -> { 
    Person p = new Person();
    p.setName(s.getEmployeeName());
    return p;
})