温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是java Predicate断言

发布时间:2026-10-09 08:10:04 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

在 Java 中,Predicate(断言) 是 Java 8 引入的一个函数式接口,位于 java.util.function 包中,常用于对某个对象进行条件判断,返回一个 boolean 结果。


一、Predicate 是什么?

Predicate<T> 是一个接收一个参数、返回布尔值的函数式接口。

核心方法

@FunctionalInterface
public interface Predicate<T> {
    boolean test(T t);
}
  • T:输入参数类型
  • test(T t):判断逻辑,返回 true 或 false

二、基本使用示例

示例 1:判断数字是否大于 10

Predicate<Integer> isGreaterThanTen = x -> x > 10;

System.out.println(isGreaterThanTen.test(15)); // true
System.out.println(isGreaterThanTen.test(5));  // false

示例 2:判断字符串是否以 “A” 开头

Predicate<String> startsWithA = s -> s.startsWith("A");

startsWithA.test("Apple"); // true
startsWithA.test("Banana"); // false

三、Predicate 的常用默认方法(非常实用)

1️⃣ and(与)

同时满足多个条件:

Predicate<Integer> gt10 = x -> x > 10;
Predicate<Integer> lt20 = x -> x < 20;

Predicate<Integer> between = gt10.and(lt20);

between.test(15); // true
between.test(25); // false

2️⃣ or(或)

满足其中一个条件即可:

Predicate<Integer> isEven = x -> x % 2 == 0;
Predicate<Integer> gt10 = x -> x > 10;

Predicate<Integer> evenOrGt10 = isEven.or(gt10);

evenOrGt10.test(8);  // true
evenOrGt10.test(11); // true

3️⃣ negate(非)

取反:

Predicate<Integer> gt10 = x -> x > 10;
Predicate<Integer> notGt10 = gt10.negate();

notGt10.test(5);  // true
notGt10.test(15); // false

四、在集合中的典型应用(Stream)

Predicate 最常见于 Stream 过滤数据。

List<String> names = List.of("Alice", "Bob", "Anna", "Tom");

List<String> result = names.stream()
    .filter(name -> name.startsWith("A"))
    .collect(Collectors.toList());

// [Alice, Anna]

五、Predicate 与 if 的区别

对比点 if 判断 Predicate
是否可传递 否 是(可作为参数)
是否函数式 否 是
是否适合流式编程 否 ✅ 非常适合

六、常见使用场景

  • 数据过滤(List / Stream)
  • 校验规则(如表单校验)
  • 权限判断
  • 条件分支抽象

七、总结一句话

Java 中的 Predicate 就是一个“条件判断器”,用来判断某个对象是否满足某种规则,返回 true 或 false,特别适合函数式编程和 Stream 操作。

如果你愿意,我也可以给你讲 Predicate vs Function vs Consumer 的区别,或者结合 Spring / 校验框架的实际用法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手