如何使用streamapi返回对象列表

jckbn6z7  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(201)

我的EmployeeDetails对象中有其他对象的列表(employeedata)。我正在尝试用一些idMap来获取它
但不知道我做错了什么

private List<EmployeeData> getEmployeeMessage(List<EmployeeDetails> employeeDetailList, Employee employee) {

    return employeeDetailList.stream()
        .filter(employeeDetail -> employeeDetail.getEmployeeId() == employee.getEmployeeId())
        .map(employeeDetail -> employeeDetail.getEmployeeData())
        .collect(Collectors.toList);

}
14ifxucb

14ifxucb1#

假设你的 EmployeeDetails 班级有 List<EmployeeData> getEmployeeData() 字段,您可以使用以下方法获取这些字段:

List<EmployeeData> getEmployeeMessage(List<EmployeeDetails> employeeDetailList, Employee employee) {

        return employeeDetailList.stream()
                .filter(employeeDetail -> employeeDetail.getEmployeeId() == employee.getEmployeeId())
                .flatMap(employeeDetail -> employeeDetail.getEmployeeData().stream())
                .collect(Collectors.toList());

    }

正如@naman正确指出的,你需要注意 flatMapmap 操作。
在这种情况下 flatMap 之所以使用,是因为您需要对列表中的每个元素进行Map操作(由 getEmployeeData() ).

相关问题