Java Stream Filter

2025年4月21日 | 阅读3分钟

Java 8 引入了许多新特性,其中 Streams API 是最重要的补充之一。在其各种功能中,filter() 方法作为一种强大的工具,以函数式风格处理集合而脱颖而出。在本节中,我们将讨论 filter() 方法,探索其用法、优点和实际应用。

什么是 Streams API?

Streams API 提供了一种新的抽象来处理 Java 中的数据序列。它允许开发人员以声明性方式对集合(如列表、集合和映射)执行操作,利用函数式编程概念。Stream 支持各种操作,分为中间操作和终端操作。中间操作返回一个 Stream,允许方法链式调用,而终端操作产生一个结果或副作用,终止 Stream 管道。

Java Stream.filter() 方法

filter() 方法是一个中间操作,它接受一个 Predicate(一个函数式接口)作为参数。Predicate 是一个函数式接口,只有一个抽象方法 test,该方法返回一个布尔值。filter() 方法处理 Stream 中的每个元素,并且只有当 Predicate 评估为 true 时才将其包含在结果中。

签名

Stream filter() 方法的签名如下:

参数

predicate: 它接受 Predicate 引用作为参数。Predicate 是一个函数式接口。因此,我们也可以在这里传递 lambda 表达式。

返回

它返回一个新的 Stream。

Java Stream.filter() 示例-1

在下面的示例中,我们正在获取并迭代过滤后的数据。

示例

编译并运行

输出

90000.0

Java Stream.filter() 示例-2

在下面的示例中,我们正在获取过滤后的数据作为列表。

示例

输出

[90000.0]

使用 filter() 方法的好处

  • 可读性: Streams API 的声明性性质使代码更具可读性和简洁性。
  • 可重用性: Predicate 接口允许代码重用和模块化。
  • 并行处理: Stream 可以并行化,从而提高多核处理器的性能。
  • 函数式编程: 采用函数式编程范式可以带来更清晰、更易维护的代码。

结论

Java 8 Streams API 中的 filter() 方法是处理集合的多功能工具。它允许开发人员利用函数式编程概念编写简洁、可读且高效的代码。无论是过滤原始数据类型、字符串还是自定义对象,filter 都提供了一种直接的方法来简化数据处理任务。随着我们深入研究 Streams API,我们将发现更多强大的操作,这些操作可以改变我们处理 Java 中数据的方式。