Java 流中过滤器的合并

Java 流中过滤器的合并,java,Java,它对列表进行流式处理,并对列表的所有元素运行conjuction: 如何用Java 8样式编写过滤器部件?您可以在谓词列表上进行流式处理,并使用allMatch要求外部流的元素匹配所有谓词 您可以对谓词列表进行流式处理,并使用allMatch要求外部流的元素匹配所有谓词 你可以使用它来完成你想要完成的事情。只有当问题中的流过滤器中的所有谓词都返回true时,它才会返回true 私有列表过滤器=新的ArrayList; // ... 流动 .filterp->filters.stream.allM

它对列表进行流式处理,并对列表的所有元素运行conjuction:

如何用Java 8样式编写过滤器部件?

您可以在谓词列表上进行流式处理,并使用allMatch要求外部流的元素匹配所有谓词

您可以对谓词列表进行流式处理,并使用allMatch要求外部流的元素匹配所有谓词

你可以使用它来完成你想要完成的事情。只有当问题中的流过滤器中的所有谓词都返回true时,它才会返回true

私有列表过滤器=新的ArrayList; // ... 流动 .filterp->filters.stream.allMatchfilter->filter.testp // ... 你可以使用它来完成你想要完成的事情。只有当问题中的流过滤器中的所有谓词都返回true时,它才会返回true

私有列表过滤器=新的ArrayList; // ... 流动 .filterp->filters.stream.allMatchfilter->filter.testp // ...
作为替代方案,您可以通过减少谓词来将它们组合成一个谓词。稍后,您可以使用此谓词进行筛选:

Predicate<?> combinedPredicate = filters.stream().reduce(Predicate::and).orElse(e -> true);
//or 
Predicate<?> combinedPredicate = filters.stream().reduce(e -> true, Predicate::and);
...
stream()
.filter(combinedPredicate)
...

作为替代方案,您可以通过减少谓词来将它们组合成一个谓词。稍后,您可以使用此谓词进行筛选:

Predicate<?> combinedPredicate = filters.stream().reduce(Predicate::and).orElse(e -> true);
//or 
Predicate<?> combinedPredicate = filters.stream().reduce(e -> true, Predicate::and);
...
stream()
.filter(combinedPredicate)
...
Predicate<?> combinedPredicate = filters.stream().reduce(Predicate::and).orElse(e -> true);
//or 
Predicate<?> combinedPredicate = filters.stream().reduce(e -> true, Predicate::and);
...
stream()
.filter(combinedPredicate)
...