小编Var*_*dav的帖子

从包含部门列表的员工对象中制作部门到员工列表的映射

问题: Employee 包含部门列表,我们有一个员工列表,现在如何从员工列表中获取像 Map<Department,List of Members> 这样的地图。

下面的代码可以解决这个问题,但我想知道如何有效地使用流 api 而不是 for 循环。

    Department a = new Department("a");
    Department b = new Department("b");
    Department c = new Department("c");

    Employee e1 = new Employee("e1", List.of(a, b));
    Employee e2 = new Employee("e2", List.of(c, b));
    Employee e3 = new Employee("e3", List.of(c, a));
    Employee e4 = new Employee("e4", List.of(a, b, c));

    List<Employee> employees = List.of(e1, e2, e3, e4);
    Set<Department> departments = employees.stream().flatMap(employee ->
            employee.getDepartments().stream()).collect(Collectors.toSet());

    for (Department d : departments) {
        for (Employee employee : employees) …
Run Code Online (Sandbox Code Playgroud)

java java-stream

6
推荐指数
1
解决办法
8898
查看次数

标签 统计

java ×1

java-stream ×1