@FunctionalInterface public interface Predicate<T> { boolean test(T t); }用法
时间: 2024-02-24 14:54:51 浏览: 84
函数式接口@FunctionalInterface使用示例
这是 Java 8 中的一个函数式接口 `Predicate<T>`,它接受一个泛型参数 `T`,并定义了一个抽象方法 `test(T t)`,该方法接受一个 `T` 类型的参数,并返回一个 `boolean` 类型的结果。该接口通常用于判断某个对象是否符合某个条件,常见的例子包括过滤集合中的元素、筛选符合要求的文件等。
例如,可以使用 `Predicate` 接口过滤集合中的偶数元素:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
Predicate<Integer> evenPredicate = n -> n % 2 == 0;
List<Integer> evenList = list.stream().filter(evenPredicate).collect(Collectors.toList());
```
上述代码中,`evenPredicate` 是一个 `Predicate` 对象,它定义了一个判断整数是否为偶数的条件,然后使用 `filter` 方法过滤集合中符合条件的元素,最后将结果收集到一个新的集合 `evenList` 中。
需要注意的是,`Predicate` 接口是一个函数式接口,因此可以使用 lambda 表达式或方法引用来创建该接口的实例。
阅读全文