【发布时间】:2022-01-22 14:06:57
【问题描述】:
假设我有一个包含员工列表的部门类,如下所示:
public class Departement {
List<Employees> employeesList;
public List<Employees> getEmployeesList() {
return employeesList;
}
public Departement setEmployeesList(List<Employees> employeesList) {
this.employeesList = employeesList;
return this;
}
}
有一种情况,我需要将所有员工列在一个单独的列表中。为此,我使用了流,如下所示:
List<Departement> departments ...
List<Employees> employees = departments.stream().flatMap(departement ->
departement.getEmployeesList().stream()).collect(Collectors.toList()));
如果我删除部门列表中的一个部门,有没有办法自动删除stream.flatMap创建的员工列表中的员工?
【问题讨论】:
-
Prog_G 我有一个我愿意删除的参考,所以我使用:departments.remove(department);
-
快速回答是在删除部门后使用
stream.flatMap再次创建一个新流,或者在删除部门之前迭代您的员工列表并删除它们(重复的可能问题?) . -
@sorifiend 这正是我想做的,我想知道是否会有更好的选择,但看起来不是这样
-
如果您的列表不大,那么这是您最好的选择。
-
您可以编写一个由您的部门列表支持的只读列表实现。但是,当您按 get(index) 访问 List 时,性能可能会很差。
标签: java java-stream