展平对象并转换为列表

时间:2017-03-13 22:28:03

标签: java lambda java-8

我有一个Employee类,其中包含一个地址列表

class Employee {
    String name;
    Integer age;
    List<String> address;
    Integer salary;
}


Employee object : E1
Employee 
name: Raghu
age : 37
address: [bangalore,chennai]
Salary : 25000

我希望将其转换为地址扁平化的List,如下所示。对于上面的对象,我需要一个List

List<Employee>
Element 1:
name: Raghu
age : 37
address: bangalore
salary: 25000
Element 2:
name: Raghu
age: 37
address: chennai
salary: 25000

如何使用java 8 lambda表达式执行此操作?

1 个答案:

答案 0 :(得分:3)

address变量重命名为addressList以便更好地理解。

您的员工拥有多个地址,并希望拥有多个(重复)员工,只有一个地址?

检查出来:

public List<Employee> getEmployees() {
    return addressList.stream()
            .map(address ->
             new Employee(name, age, Arrays.asList(address), salary))
            .collect(Collectors.toList());
}

我假设你可以使用像
这样的构造函数 public Employee(String name, int age, List<String> addressList, int salary)。 此处nameageaddressListsalaryEmployee类中的实例变量。