zoukankan      html  css  js  c++  java
  • 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());
        }
    }
  • 相关阅读:
    一个从excel导入数据错位问题
    Chrome F12 温故而知新 :因为重定向导致清空Network信息
    export / import 温故而知新
    Chrome Debugger 温故而知新:上下文环境
    微信导出表情包教程
    Oracle中判断字段是否为数字
    获取GridView中RowCommand的当前索引行
    Oracle SQL常用内置系统函数总结
    使用Task代替ThreadPool和Thread
    Visual Studio 使用及调试必知必会
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/12268660.html
Copyright © 2011-2022 走看看