如何使用lameda Expression java将列表从一个转换为另一个类型

时间:2016-09-25 07:41:17

标签: java spring

我有一个Entities Employee(Class)列表,其中包含empid,empname,emprole.salary字段

List<Employee>= getting from database

我想将其转换为具有字段empname,emprole,salary

的模型列表Person(Class)
List<Person> person = new ArrayList<Person>();

我可以使用for循环进行转换。但是,我想使用lambda表达式转换它。

1 个答案:

答案 0 :(得分:3)

假设你有一个合适的构造函数,它应该简单:

List<Person> people = employees
    .stream() // View the list as a stream
    .map(e -> new Person(e.getId(), e.getName(), e.getRole().getSalary()))
    .collect(Collectors.toList());

请注意,如果您正在使用员工列表 all ,那么这可能意味着您获取的数据超出了实际需要。您应该查看查询正在执行的操作,并考虑将它们调整为仅返回您需要的内容。