使用 Stream API 将谓词链接为一个

San*_*ung 0 java predicate stream

我有一个谓词列表 ( List<Predicate<String>>),我想使用or方法将其链接到一个谓词中。我如何使用 Stream API 来实现这一目标?

mar*_*ran 5

您可以使用reduce将它们全部连接在一起or,产生一个Predicate<String>. 像这样:

List<Predicate<String>> predicates = getPredicates();

Predicate<String> p = predicates.stream()
    .reduce(s -> false, Predicate::or);
Run Code Online (Sandbox Code Playgroud)

  • @Eritrean如果身份是“s -&gt; true”,那么无论谓词列表如何,组合谓词总是会成功。 (4认同)