gpt4 book ai didi

Java 8 - 使用许多过滤器的过滤器集合

转载 作者:行者123 更新时间:2023-11-30 06:09:38 25 4
gpt4 key购买 nike

我想使用多个过滤器过滤掉我的 Collection 。

假设我有一个字符串列表和一个函数 filter()过滤掉空字符串。

List<String> myList = .......

通常,我会使用这样的流:

myList.stream()
.filter(elem -> filterOut(elem))
.collect(Collectors.toList());

如何使用流应用集合中的多个过滤器( ListSet )?

Set<Predicate> myFilters = .....

最佳答案

myList.stream()
.filter(s -> myFilters.stream().allMatch(p -> p.test(s)))
.collect(Collectors.toList());

或者,如果您是 Guava 的粉丝:

com.google.common.base.Predicate<String> combined = Predicates.and(Iterables.transform(myFilters, p -> p::test));
myList.stream()
.filter(combined::apply)
.collect(Collectors.toList());

关于Java 8 - 使用许多过滤器的过滤器集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37549121/

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