首页 > 解决方案 > 将一个对象拆分为对象列表 - 需要 JAVA8 解决方案

问题描述

我有以下代码,其中我有一个具有多个角色的员工对象。我想将此单个员工对象拆分为多个员工对象,每个对象只有一个角色。

public class Employee {
   private String empId;
   private String empName;
   private List<String> empRoles;
 }

现在我有一个返回类型为 List 的方法

public List<Employee> splitEmployeObj(Employee emp) {
   // code logic goes here 
 }
   // sample input : { empId:'123',empName:'john',empRoles:['Developer','Tester'] }
   // sample output : [ { empId:'123', empName:'john',empRoles : ['Developer'] },
                        { empId:'123', empName:'john',empRoles : ['Tester']]

有人可以帮助提供有效的 java8 解决方案。

标签: javaarraylistjava-8

解决方案


流式传输角色并映射到新员工:

public List<Employee> splitEmployeObj(Employee emp) {
    return emp.getEmpRoles()
            .stream()
            .map(role -> new Employee(emp.getEmpId(), emp.getEmpName(), Collections.singletonList(role)))
            .collect(Collectors.toList());
}

推荐阅读