stream — 查找与匹配

Posted zhanh247

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stream — 查找与匹配相关的知识,希望对你有一定的参考价值。

查找与匹配

    List<Employee> employees = Arrays.asList(//
            new Employee(20, "张三", 5000.35, Status.FREE), //
            new Employee(40, "李四", 6500.63, Status.BUSY), //
            new Employee(30, "王五", 4000.93, Status.FREE), //
            new Employee(50, "赵六", 9005.36, Status.BUSY), //
            new Employee(10, "马七", 1050.93, Status.VOCATION), //
            new Employee(20, "朱八", 3000.73, Status.BUSY)//
    );

    @Test
    public void test1() {

        // 1、allMatch—检查是否匹配所有元素
        boolean allMatch = employees.stream().allMatch((e) -> e.getStatus().equals(Status.FREE));
        System.out.println(allMatch);

        // 2、anyMatch—检查是否至少匹配一个元素
        boolean anyMatch = employees.stream().anyMatch((e) -> e.getStatus().equals(Status.FREE));
        System.out.println(anyMatch);

        // 3、noneMatch—检查是否没有匹配所有元素
        boolean noneMatch = employees.stream().noneMatch((e) -> e.getStatus().equals(Status.FREE));
        System.out.println(noneMatch);

        // 4、findFirst—返回第一个元素
        Optional<Employee> findFirst = employees.stream()
                .sorted((e1, e2) -> Double.compare(e1.getSalary(), e2.getSalary())).findFirst();
        System.out.println(findFirst.get());

        // 5、findAny—返回当前流中的任意元素
        Optional<Employee> findAny = employees.stream().filter((e) -> e.getStatus().equals(Status.FREE)).findAny();
        System.out.println(findAny.get());

        // 6、count—返回流中元素的总个数
        long count = employees.stream().count();
        System.out.println(count);

        // 7、max—返回流中最大值
        Optional<Employee> max = employees.stream().max((e1, e2) -> Double.compare(e1.getSalary(), e2.getSalary()));
        System.out.println(max.get());

        // 8、min一返回流中最小值
        Optional<Double> min = employees.stream().map(Employee::getSalary).min(Double::compare);
        System.out.println(min.get());
    }

 

以上是关于stream — 查找与匹配的主要内容,如果未能解决你的问题,请参考以下文章

stream — 查找与匹配

jdk1.8新特性——Stream(流)的终止操作(查找与匹配的示例演示)

Java8 新特性 Stream 短路终端操作

精细篇Java8强大的stream API接口大全(代码优雅之道)

Java8-04-03-笔记

Java8-04-03-笔记