在 Java 8 中,Predicate 是一个函数式接口,用于表明一个接收参数并返回布尔值的函数。它一般用于测试某些对象是否满足某个条件,并在集合类中被广泛使用。
Predicate 接口只有一个方法 test(T t),该方法接收一个参数,返回一个布尔值。Predicate 接口还提供了一些默认方法,可以方便地进行组合和其他常见操作。
例如,可以使用 and 方法将多个 Predicate 组合在一起,并返回一个新的 Predicate 对象,该对象只有在所有输入 Predicate 都返回 true 时才返回 true。类似地,or 方法将多个 Predicate 组合在一起,并返回一个新的 Predicate 对象,该对象只有在任何一个输入 Predicate 返回 true 时才返回 true。negate 方法返回一个新的 Predicate 对象,该对象与原始 Predicate 相反,即输入 Predicate 返回 true 时返回 false。
下面是一个示例,展示如何使用 Predicate 进行测试和组合:
javaCopy codePredicate<String> p1 = s -> s.length() > 10;
Predicate<String> p2 = s -> s.startsWith("Hello");
String input = "Hello world!";
boolean result = p1.and(p2).test(input);
System.out.println(result); // false
在上面的示例中,我们定义了两个 Predicate,分别检查输入字符串的长度是否大于 10,以及输入字符串是否以 “Hello” 开头。然后,我们将这两个 Predicate 组合在一起,并将其应用于输入字符串 “Hello world!”。由于该字符串的长度为 12,不满足第一个 Predicate,因此返回结果为 false。
除了以上示例中的示例外,还有许多其他用例可以使用 Predicate,例如在过滤和排序集合时,使用 stream() 和 filter() 方法等等。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


