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

贾拉曼德

我是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来做到这一点?

如果我有一个键是唯一的employeeID而不是List的Map,会更容易吗?

亚历克西斯C.

如果您不介意在适当位置修改列表,则可以使用removeIf并且将作为参数给出的谓词将检查涉及员工的项目是否与给定的ID不匹配。

例如,

employees.removeIf(e -> e.getInvolvedInProjects().stream().anyMatch(p -> p.getProjectId() == someId));

如果列表不支持删除元素,请从employees列表中获取流,并使用与之相反的谓词(在这种情况下,可以使用.noneMatch(p -> p.getProjectId() == someId)对其进行过滤,并使用removeIf收集结果Collectors.toList()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表中列表的Java 8流过滤值

来自分类Dev

为什么我不能继续使用在Java 8集合#的forEach标签吗?

来自分类Dev

Java 8-映射值内的过滤器列表

来自分类Dev

处理嵌套集合与Java 8流

来自分类Dev

如何在Java8中过滤列表?

来自分类Dev

过滤从地图键列表属性在Java中8

来自分类Dev

Java 8 Streams修改集合值

来自分类Dev

Java中的同步嵌套集合

来自分类Dev

如何在Java 8中按值过滤地图?

来自分类Dev

在Java 8中递归展平嵌套映射的值

来自分类Dev

获取嵌套字典中唯一值的列表(或集合)

来自分类Dev

如何使用数据流中的Java 8过滤器两个列表对象,并设定值新名单

来自分类Dev

Java 8-生成列表的电源集

来自分类Dev

JAVA 8 要从列表分配给对象的内存/集合/列表值

来自分类Dev

如何使用Lambda生产来过滤Java 8中的嵌套流

来自分类Dev

使用 Java 8 中的另一个列表过滤对象列表

来自分类Dev

Java 8-使用外部参数过滤集合

来自分类Dev

Java 8-具有不同集合的流式嵌套ForEach

来自分类Dev

Java 8-具有不同集合的流嵌套ForEach

来自分类Dev

如何使用Java 8流将列表中的值相乘

来自分类Dev

使用Java 8流修改列表中对象的属性值

来自分类Dev

Java 8如何从两个集合中过滤不相同的实体?

来自分类Dev

使用流过滤集合以获取其属性在Java 8中出现过n次的项目

来自分类Dev

Java 8如何从两个集合中过滤不相同的实体?

来自分类Dev

更改嵌套列表中的过滤值

来自分类Dev

同一集合中的重复mongo记录

来自分类Dev

如何比较同一集合中的文档?

来自分类Dev

同一集合中的重复mongo记录

来自分类Dev

Java的8流/地图/过滤器来修改或在飞行中删除列表中的元素

Related 相关文章

热门标签

归档