• 11.Java8新特性_Stream_查找与匹配


    Stream的终止操作

    终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如:List、Integer,甚至是void

     

    package com.sggeleven;
    
    import com.sggthree.Employee;
    import com.sun.org.apache.xpath.internal.operations.Bool;
    import org.junit.Test;
    
    import java.util.Arrays;
    import java.util.List;
    import java.util.Optional;
    import java.util.function.Predicate;
    
    public class TestStreamAPI4 {
        List<Employee> employees = Arrays.asList(
                new Employee("李欣欣",24,13000.10),
                new Employee("孟宇",26,15000.0),
                new Employee("李小慧",30,20000.77),
                new Employee("李小飞",28,500.00)
                );
        /*
        查找与匹配
        allMatch - 检查是否匹配所有元素
        anyMatch - 检查是否至少匹配一个元素
        noneMatch - 检查是否没有匹配所有元素
        findFirst - 返回第一个元素
        findAny - 返回当前流中的任意元素
        count - 返回流中元素的总个数
        max - 返回流中最大值
        min - 返回流中最小值
         */
        @Test
        public void test1(){
    
            Boolean bl = employees.stream().allMatch((x) -> x.getMoney() > 100.00);
            System.out.println(bl);
    
            Boolean bl1 = employees.stream().anyMatch((x) -> x.getMoney() > 25000.00);
            System.out.println(bl1);
    
            Boolean bl2 = employees.stream().noneMatch((x) -> x.getMoney() < 1.00);
            System.out.println(bl2);
    
           Optional<String> optional = employees.stream()
                    .sorted((e1,e2) -> -e1.getMoney().compareTo(e2.getMoney()))
                    .map(Employee::getName)
                    .findFirst();
            System.out.println(optional.get());
    
            Optional<Employee> optional2 = employees.parallelStream().filter((e) -> e.getMoney() > 10000.00)
                    .findAny();
            System.out.println(optional2.get());
        }
    
        @Test
        public void test2(){
    
            long long1 = employees.stream().count();
            System.out.println(long1);
    
            Optional<String> optional3= employees.stream()
                    .filter((x) -> x.getAge() > 25)
                    .max((e1,e2) -> e1.getAge().compareTo(e2.getAge()))
                    .map(Employee::getName);
            System.out.println(optional3.get());
    
    
            Optional<Employee> optional4= employees.stream()
                    .filter((x) -> x.getAge() > 25)
                    .min((e1,e2) -> e1.getAge().compareTo(e2.getAge()));
            System.out.println(optional4.get());
        }
    }
  • 相关阅读:
    nodejs
    socket.io
    how to develop mobile web
    nodejs
    GitHub
    angularJS vs backbone
    AngularJS
    oracle 数据库中数据导出到excel
    cocos2d-x中的二段构造模式
    HDOJ 4975 A simple Gaussian elimination problem.
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/12268660.html
Copyright © 2020-2023  润新知