在Java中,Predicate是一个函数式接口,它接受一个输入参数并返回一个布尔值。Predicate通常用于过滤集合中的元素或进行条件判断。
常用方法包括:
test(T t):接受一个输入参数并返回一个布尔值,用于判断输入参数是否满足条件。
and(Predicate<? super T> other):返回一个逻辑与的Predicate,表示两个Predicate条件都满足。
or(Predicate<? super T> other):返回一个逻辑或的Predicate,表示两个Predicate条件中至少有一个满足。
negate():返回一个取反的Predicate。
示例代码:
Predicate<Integer> isEven = num -> num % 2 == 0;
Predicate<Integer> isPositive = num -> num > 0;
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 使用Predicate过滤集合中的元素
List<Integer> evenNumbers = numbers.stream()
.filter(isEven)
.collect(Collectors.toList());
// 使用and方法组合两个Predicate
List<Integer> evenAndPositiveNumbers = numbers.stream()
.filter(isEven.and(isPositive))
.collect(Collectors.toList());