gpt4 book ai didi

java-8 - Java 8 集合 - 过滤嵌套列表中的值

转载 作者:行者123 更新时间:2023-12-01 10:36:55 27 4
gpt4 key购买 nike

我是 Java 8 和 Stream API 的新手。

如果我有一个 Employee 对象列表:

List<Employee> employees;

public class Employee {
private String name;
private List<Project> involvedInProjects;
}

public class Project {
private int projectId;
}

我想过滤参与某些项目的员工,我将如何使用 java 8 中的流 API 执行此操作?

如果我有一个 Map ,其中键是唯一的员工 ID 而不是 List 会更容易吗?

最佳答案

因此,您可以访问流操作中的嵌套列表,然后使用它。在这种情况下,我们可以使用嵌套流作为过滤器的谓词

employees.stream().filter(
employee -> employee.involvedInProjects.stream()
.anyMatch(proj -> proj.projectId == myTargetId ))

这将为您提供至少一个与您的 targetId 匹配的项目的所有员工的流。从这里您可以进一步操作流或使用 .collect(Collectors.toList()) 将流收集到列表中。

关于java-8 - Java 8 集合 - 过滤嵌套列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33812213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com