【问题标题】:Split one object into List of objects - JAVA8 Solution required将一个对象拆分为对象列表 - 需要 JAVA8 解决方案
【发布时间】:2021-09-22 21:36:33
【问题描述】:

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

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 解决方案吗?

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 我建议您从字段中删除前缀emp,因为该类已经命名为Employee。只需idnameroles 就足够了。

标签: java arraylist java-8


【解决方案1】:

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

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

【讨论】:

  • 感谢您的帮助,但它在实际应用程序中基本上是一个沉重的对象,我无法手动将每个字段设置为新对象。这就是我遇到的问题。
  • 如果你不能创建一个新对象,你到底在寻找什么?您的要求和对会议的警告似乎不一致。您可能还想更新您的问题,解释此限制和任何其他限制。
猜你喜欢
  • 2017-07-07
  • 2021-11-16
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 2023-04-11
相关资源
最近更新 更多