【发布时间】:2020-12-16 00:47:21
【问题描述】:
在使用 java 8 迭代和比较 2 个不同的列表时,我需要帮助。如果其中一个属性匹配,那么我需要将一个列表的值设置为另一个。一个员工可以有多个项目。
EmployeeDto{ --列表
名称
ID
数字
项目列表}
我有一个列表项目列表
项目Dto
{
ID,
项目名称....}
我想比较employeeList 和projectList。检查两个列表中的 Id 是否匹配然后设置 employeeDto.setProjectList(projectList)
List<ProjectDto> newList = new Arraylist<>();
for(EmployeeDto emp: employeeList) {
for(ProjectDto project: ProjectList){
if(project.getId().equals(emp.getId())){
newList.add(project);
}
emp.setProjectList(newList));
}
提前致谢
【问题讨论】:
-
到目前为止你尝试了什么?
-
for(EmployeeDto dto: employeeList){ projectList.stream().filter(x--> x.getid.equals(dto.getId().map(dto.setProjectList(x))) )。由于这是一个列表,因此我不确定 .map 条件。我知道这是错误的。我想将项目添加到列表中,然后将其设置为employeedto
标签: java arraylist lambda java-8 java-stream