java - 展平对象并转换为列表

标签 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<Employee>
Element 1:
name: Raghu
age : 37
address: bangalore
salary: 25000
Element 2:
name: Raghu
age: 37
address: chennai
salary: 25000

如何用 java 8 lambda 表达式做到这一点?

最佳答案

重命名 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) . 这里name , age , addressListsalaryEmployee 中的实例变量类。

关于java - 展平对象并转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774569/

相关文章:

c# - LINQ to SQL lambda 表达式。 OrderBy、Case When、Dynamic Where

java - 我如何使用收集器而不是手动放入 java 8 中的 ConcurrentHashMap

java - Maven:hibernate-entitymanager 和 javaee-api 一起破坏了我的单元测试

java - 带有 mode = AdviceMode.ASPECTJ 的 Spring Transaction 无法正常工作

c++ - 这 4 个 lambda 表达式有什么区别?

java - lambda 表达式可以替代多态性吗?

java - Java 8 流的不干扰要求

java - 使用 Java 8 流生成整数对

java - 在hadoop中计算 'n'最大值

java - 将 Spring 配置文件添加到应用程序上下文