Predicate<? super T> predicate
时间: 2023-04-11 21:01:41 浏览: 142
Predicate<? super T> predicate是一个泛型接口,它表示一个函数,该函数接受一个参数并返回一个布尔值。这个参数的类型是T或T的超类型。这个接口通常用于测试对象是否符合某些条件。
相关问题
Predicate<? super T> predicate怎么用,举个例子可以吗
当我们使用 Predicate<? super T> predicate 时,我们可以使用它来过滤集合中的元素。下面是一个例子:
假设我们有一个 Animal 类,它有一个属性 age,我们想要从一个 Animal 集合中过滤出年龄大于等于 5 的 Animal 对象,可以这样写:
List<Animal> animals = new ArrayList<>();
animals.add(new Animal("cat", 3));
animals.add(new Animal("dog", 6));
animals.add(new Animal("lion", 8));
Predicate<Animal> agePredicate = animal -> animal.getAge() >= 5;
List<Animal> filteredAnimals = animals.stream()
.filter(agePredicate)
.collect(Collectors.toList());
在这个例子中,我们使用了 Predicate<Animal> 来过滤 Animal 集合中的元素,其中 agePredicate 是一个 Lambda 表达式,它接受一个 Animal 对象并返回一个 boolean 值,表示这个 Animal 对象是否符合我们的过滤条件。
最后,我们使用了 Java 8 中的 Stream API 来对 Animal 集合进行过滤,并将过滤后的结果收集到一个新的 List 中。
Predicate<? super T> predicate能举个例子吗
当然可以,Predicate<? super T> predicate是一个泛型接口,用于判断某个对象是否符合特定的条件。例如,我们可以定义一个Predicate接口的实现类,用于判断一个整数是否是偶数:
```
public class EvenNumberPredicate implements Predicate<Integer> {
@Override
public boolean test(Integer number) {
return number % 2 == 0;
}
}
```
这个实现类中,我们重写了Predicate接口中的test方法,用于判断一个整数是否是偶数。如果是偶数,返回true,否则返回false。