【发布时间】:2022-01-18 05:29:37
【问题描述】:
天啊,我几乎需要一点帮助来回答这个问题!新的 Java II 学生在这里,提前感谢您的时间。
我有一个如下所示的员工列表:
public class Employee {
private String name;
private String department;
}
以及如下所示的公司列表:
public class Company {
private String name;
List<Department> departments;
}
部门只是:
public class Department{
private String name;
private Integer totalSalary;
}
因此,我的任务是流式传输为同一家公司工作的员工列表。 (抱歉之前没有说:公司被传递给一个函数。这是唯一的论点)我第一次阅读时似乎很容易,但由于课程的设置方式,(公司只有一个部门列表,并且员工只有一个部门,但员工和公司之间没有链接属于该公司的部门...
List<Department> deptsInCompany = companies.stream()
.filter(s -> s.getName().equals(passedInCompany))
.flatMap(s -> s.getDepartments().stream())
.collect(Collectors.toList());
我只是不确定如何使用该部门列表来回溯并找到这些部门的员工。我认为我的 ROOKIE 头脑无法忘记每个部门对象中都有一个员工列表,但没有!
任何小小的推动将不胜感激!我保证当我有技巧的时候付钱!!
【问题讨论】:
-
你有所有员工的名单吗?
-
您究竟是什么意思流式传输为同一家公司工作的员工列表?哪间公司?一个具体的?或者创建公司地图到员工列表? “流媒体”是什么意思?你想用流做什么?如果您没有从流中得到结果,则流什么也不做。
-
你快到了。无需将部门流收集到列表中,您只需将其重新映射到
.flatMap(d -> employees.stream().filter(e -> d.getName().equals(e.getDepartment())))等员工流中,然后收集员工列表
标签: java list collections stream