首页 > 解决方案 > Java流:将一个对象的列表转换为另一个

问题描述

我正在尝试在 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;
}

那么通过映射或流中的其他函数是否可行,以便我可以在上面的代码中获取人员列表而不是字符串列表

标签: java-8java-stream

解决方案


当然,只需将map功能更改为:

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

或者如果没有这样的构造函数:

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

推荐阅读