gpt4 book ai didi

java - 使用 List 流式传输 anyMatch

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:54 25 4
gpt4 key购买 nike

我有一个“项目”列表,每个项目都有一个 item.posts 属性(这是一个后实例列表)。

我想通过两个属性过滤我的“项目”列表:

如果“item.isBig”并且启用了项目的任何帖子,则收集返回的Stream

但是,我不知道如何使用“i.getPosts#isEnabled”进行“anyMatch”。

items.stream()
.filter(Item::isBig)
.anyMatch(i.getPosts()->p.isEnabled) // this does not work
.collect(Collectors.toList());

最佳答案

anyMatch 是一个终端操作,因此您不能将它与 collect 结合使用。

您可以应用两个过滤器:

List<Item> filtered = 
items.stream()
.filter(Item::isBig)
.filter(i -> i.getPosts().stream().anyMatch(Post::isEnabled))
.collect(Collectors.toList());

或将它们组合成一个过滤器:

List<Item> filtered = 
items.stream()
.filter(i -> i.isBig() && i.getPosts().stream().anyMatch(Post::isEnabled))
.collect(Collectors.toList());

关于java - 使用 List 流式传输 anyMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46196721/

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