Predicate<? super T> predicate怎么用,举个例子可以吗
时间: 2023-04-11 12:01:44 浏览: 189
当我们使用 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 中。
阅读全文