Java 中的 java.util.function.DoublePredicate 接口及示例

2025年1月6日 | 3 分钟阅读

JDK 8 引入了 DoublePredicate 接口。名为 DoublePredicate (java.util.function.DoublePredicate) 的函数式接口在其内部指定了三个默认方法和一个抽象方法。这是 Predicate 接口的一个更专业的版本。由于它只有一个抽象方法 test (double value),该方法使用给定的输入评估此谓词,因此被认为是基本的。

java.util.function 包包含此接口的包。它接收一个 Double 对象作为输入,并根据给定的条件生成一个谓词值。由于它是一个函数式接口,因此也可以使用 lambda 表达式。

语法

可以实现的方法是

1. test(): 此函数在对 double 值进行条件检查后,返回一个布尔值表示结果。

语法

2. and(): 此函数通过对当前使用的对象和作为参数传递的对象应用 AND 运算来创建一个新的谓词。此方法存在默认实现。

语法

3. negate(): 此函数翻转测试条件,返回当前谓词的逆。此方法存在默认实现。

语法

4. or(): 当在当前使用的对象和作为输入的对象上实现 OR 运算时,此函数返回新创建的谓词。此方法存在默认实现。

语法

示例 1

提供的 Java 程序使用 DoublePredicate 接口过滤 doubles 流并打印偶数。

实施

文件名: DoublePredicateEven.java

输出

The Even number is : 12.0
The Even number is : 14.0
The Even number is : 16.0
The Even number is : 18.0
The Even number is : 20.0

示例 2

Java 应用程序演示了 DoublePredicate 用于评估 double 值的条件。它指定了一个谓词 DB 来确定一个数的平方是否小于 100,并输出 10 的结果。

实施

文件名: DoublePredicateEven.java

输出

10 squared is less than 100: false
10 squared is not less than 100: true
9 squared is less than 100 and between 36 and 1000: true
7 squared is less than 100 or between 36 and 1000: true