gpt4 book ai didi

Java 8 组列表映射

转载 作者:行者123 更新时间:2023-11-30 02:00:35 24 4
gpt4 key购买 nike

我有一个 Employee 和一个 EmployeeJob 类,其签名如下:

public class Employee {

public Integer employeeId;

public Integer getEmployeeId() {
return employeeId;
}

public void setEmployeeId(Integer employeeId) {
this.employeeId = employeeId;
}
}

public class EmployeeJob {

private Integer employeeJobId;
private Employee employee;
private String jobName;
public Integer getEmployeeJobId() {
return employeeJobId;
}
public void setEmployeeJobId(Integer employeeJobId) {
this.employeeJobId = employeeJobId;
}
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public String getJobName() {
return jobName;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
}

我想要一个Map<Integer, List<EmployeeJob>>来自List<EmployeeJob>其中键是 Employee 类中的 employeeId。如何使用 java 8 流按 employee->employeeId 对该列表进行分组?

可以在单个流中解决问题,还是应该以某种方式将其拆分或采用经典解决方案?

最佳答案

使用Collectors.groupingBy:

Map<Integer, List<EmployeeJob>> map =
list.stream()
.collect(Collectors.groupingBy(ej -> ej.getEmployee().getEmployeeId()));

关于Java 8 组列表映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com