关于java:Java-8函数式接口之PredicateT-和-BiPredicateT-U的区别

45次阅读

共计 764 个字符,预计需要花费 2 分钟才能阅读完成。

Predicate<T> 和 BiPredicate<T, U> 都是 Java 8 中的函数式接口,用于示意谓词(Predicate),即能够对给定参数进行条件判断的操作。它们之间的区别在于承受的参数个数。


1. Predicate<T>:承受一个参数并返回一个布尔值的谓词。它定义了一个名为 test(T t) 的形象办法,用于对给定的参数进行条件判断。常见的用法是过滤汇合中的元素,依据条件判断是否保留或排除某些元素。例如:

Predicate<Integer> isEven = num -> num % 2 == 0;

System.out.println(isEven.test(4));  // 输入: true
System.out.println(isEven.test(5));  // 输入: false

2. BiPredicate<T, U>:承受两个参数并返回一个布尔值的谓词。它定义了一个名为 test(T t, U u) 的形象办法,用于对给定的两个参数进行条件判断。通常用于须要两个输出参数的判断场景。例如:

BiPredicate<Integer, String> isPair = (num, str) -> num % 2 == 0 && str.length() > 5;

System.out.println(isPair.test(4, "Hello"));       // 输入: true
System.out.println(isPair.test(3, "Hello"));       // 输入: false
System.out.println(isPair.test(4, "Hi there"));    // 输入: false

总结来说,Predicate<T> 是一个接管单个参数的谓词,而 BiPredicate<T, U> 是一个接管两个参数的谓词。它们都被宽泛用于函数式编程和汇合操作中,能够依据给定的条件对元素进行过滤、筛选和判断。

正文完
 0