使用java8流从内部列表中检索数据

aru*_*ect 4 java collections java-8 java-stream

我有员工名单,每个员工都有其中的部门清单.我想让一个员工下的列表部门.这是我的代码,

List<Employee> employeeList = new ArrayList<Employee>();
List<Department> departments = employeeList.stream().filter(x-> x.getEmployeeName().equals("XXX")).filter(y -> y.getDepartmets()).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Eug*_*ene 5

employeeList.stream()
            .filter(x -> "XXX".equals(x.getEmployeeName()))
            .findFirst()
            .map(Employee::getDepartmets)     
            .orElse(Collections.emptyList());
Run Code Online (Sandbox Code Playgroud)

首先filter按名称找到第一个.如果存在,则将其映射到这些部门,否则生成一个空列表.