Java 8 过滤器

13 2025年5月 | 阅读 3 分钟

Stream filter(Predicate predicate) 提供了一个流,其中包含此流中满足 supplied predicate 的元素。这是一个分步过程。这些操作总是惰惰的,这意味着调用 filter() 实际上并没有过滤任何东西,而是创建了一个新流,当进行浏览时,它包含原始流中符合 provided predicate 的项。

语法

Java Stream filter() 示例 1

在此示例中,我们使用 stream() 函数从 **countrynames** 列表中创建流,然后使用 stream filter 方法创建另一个 **longcountrynames** 流。如前所述,流过滤器将数据从一个流转换为另一个流中的数据。

StreamFilterExample1.java

输出

America Ireland Finland

Java Stream filter() 带有多个条件的示例 2

在下面的代码中,我们可以看到 filter() 方法只有一个条件。我们可以使用 Java 中的逻辑运算符将多个条件合并到 filter() 方法中。在以下示例中,filter() 方法中的两个条件使用 (&&) 逻辑运算符连接。

StreamFilterExample2.java

输出

India

Java Stream filter() 和 map() 示例 3

在下面的 Java 代码中,stream filter() 与 map() 方法一起用于打印给定数字的平方。

StreamFilterExample3.java

输出

[1, 4, 9, 16, 25, 36, 49, 64, 81]

Java Stream filter() 和 collect() 示例 4

在下面的 Java 代码中,stream filter() 与 collect() 方法一起使用。

StreamFilterExample4.java

输出

America
Canada
Ireland
India

Java Stream filter() 与 min() 和 max() 示例 4

在下面的 Java 代码中,stream filter() 与 min() 和 max() 方法一起使用,以找出给定数字列表中的最大和最小数字。

StreamFilterExample5.java

输出

Min value: 1
Max value: 5