Predicate使用详解

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(3126)   2023-03-28 11:29:14

是什么Predicate

java8,java.util.function中 Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持lambda表达式的API中,以此可以缩短lambda的长度和提高代码可阅读性。当然普通代码片段种用它来作为筛选条件也可以。

Predicate能做什么

Predicate能为我们做些什么事儿呢?下面以数据赛选为例。

 List<Person> personList= Stream.of(
                new Person(21,"zhangsan"),
                new Person(22,"leftso"),
                new Person(23,"wangwu"),
                new Person(24,"wangwu"),
                new Person(25,"leftso"),
                new Person(26,"zhangsan")
        ).collect(Collectors.toList());

需求1:统计年龄大于22的人数量

代码实现:
        Predicate<Person> personPredicate = x -> x.getAge() > 22;
        Long count=personList.stream().filter(personPredicate).count();
        System.out.println(count);
简述:第一步编写过滤条件personPredicate,第二部带入stream中进行过滤。

需求2:统计年龄大于22或者名字为leftso的人数量

咋一看这是个“或”关系的赛选,代码实现为:

       Predicate<Person> personPredicate = x -> x.getAge() > 22;
       personPredicate.or(x->"leftso".equals(x.getName()));
       long count=personList.stream().filter(personPredicate).count();
        System.out.println(count);
标签: Predicate Java8 lambda
地址:https://www.leftso.com/article/718.html

相关阅读

是什么Predicatejava8,java.util.function中 Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持lambda...
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
本文主要讲解通过使用 Stream.concat() 方法 去合并两个stream,新的stream由原来的两个stream所有元素组成(相同元素会覆盖)
java8 Function 应用场景 --代码重构旧代码: import org.springframework.beans.BeanUtils; import java.util.func...
Java 8使用多个comparators进行集合分组排序
Consumer 源码package java.util.function; import java.util.Objects; @FunctionalInterface public i...
java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function&lt;Integer,Int...
简介本博文主要讲解在Java 8中 如何通过stream流的方式去重
备受期待的Java Enterprise Edition 8发布了两个令人兴奋的新API(JSON-Binding 1.0和Java EE Security 1.0)并改进了当前的API(JAX...
Ubuntu 20.04 安装jdk8sudo apt-get install openjdk-8-jdk安装完成后查看版本java -version