在流式处理中,filter 操作是用于筛选符合条件的元素并生成一个新的流。谓词(Predicate)是一个表示条件的函数式接口,用于定义筛选的条件。
在 Java 中,Stream API 提供了 filter 方法来执行筛选操作。filter 方法接受一个谓词作为参数,该谓词描述了筛选的条件。
谓词的函数式接口定义如下:
public interface Predicate<T> {
boolean test(T t);
}
其中 T 是流中元素的类型,test 方法接受一个参数并返回一个布尔值,用于判断该元素是否满足筛选条件。
使用 filter 方法和谓词可以实现根据条件筛选流中的元素,例如:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出 [2, 4]
其中的谓词可以声明成一个变量,在有需要的地方复用该谓词
public static Predicate<Integer> PREDICATE = n -> n % 2 == 0;
标签:Predicate,自定义,Stream,元素,filter,谓词,筛选
From: https://www.cnblogs.com/Linzj5950/p/17778642.html