【发布时间】:2019-05-10 15:08:00
【问题描述】:
新手问题。我有一个原始 bean 来自 DB 逐行作为
public class DataBean {
private Integer employeeId;
private String org;
private String comments;
// + Constructors, getters/setters
}
我需要将它映射到一个不同的 bean,其中多个组织按员工 ID 分组到一个列表中。 一个EmployeeID只有Orgs可以是多个; Comments 字段保证是相同的。
public class CustomDataBean {
private Integer employeeId;
private List<String> orgs;
private String comments;
// + Constructors, getters/setters
}
努力开始。正在考虑groupingBy,如下所示,但它返回一个地图,我没有建立一个子列表。
Map<Integer, List<String>> temp = origData.stream().collect(
Collectors.groupingBy(OrigBean::getEmployeeId,
/* 2nd param? */ .. ))
我的目标是转换后的List<CustomDataBean>。
【问题讨论】:
-
只是为了确保我理解正确:您的输入是
DataBean的List,并且您想将具有相同employeeId的DataBeans 分组到CustomDataBeans ? -
尝试适配器设计模式。
-
一个员工可以有不同的组织。我得到了逐行的结果,并且需要创建一个bean,其中 Employee 有一个 List
用于他所属的组织。换句话说,该员工的所有组织都包装在一个列表字段中。
标签: java collections java-stream pojo