共计 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> 是一个接管两个参数的谓词。它们都被宽泛用于函数式编程和汇合操作中,能够依据给定的条件对元素进行过滤、筛选和判断。
正文完