0
点赞
收藏
分享

微信扫一扫

Java8新特性强大的Stream API终止操作查找与匹配(五)

五殳师兄 2022-04-17 阅读 87

目录

Stream 的终止操作

查找与匹配

案例代码 


Stream 的终止操作

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

查找与匹配

案例代码 

package com.csdn.test;

import com.csdn.entity.Employee;
import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;

/**
 * @author summer
 * @date 2022-04-16  18:11
 */
public class TestFinal1 {
    List<Employee> employees = Arrays.asList(
            new Employee("张三",18,6666.66),
            new Employee("李四",38,3333.66),
            new Employee("王五",32,4444.66),
            new Employee("赵六",42,5555.66),
            new Employee("田七",21,9999.66),
            new Employee("王八",19,8888.66),
            new Employee("王八",19,8888.66),
            new Employee("王八",19,8888.66),
            new Employee("张九",52,7777.66)
    );


    @Test
    public void test(){
        //    检查是否所有的员工年龄都大于20
        boolean allMatch = employees.stream().allMatch(emp->emp.getAge()>20);
        System.out.println(allMatch);
//        检查是否有至少有一个员工的年龄大于20
        boolean anyMatch = employees.stream().anyMatch(emp -> emp.getAge() > 20);
        System.out.println(anyMatch);
//        检查所有员工是否年龄都没大于20的
        boolean noneMatch = employees.stream().noneMatch(emp -> emp.getAge() > 20);
        System.out.println(noneMatch);
//        返回年龄大于20的第一个,至于Optional后面我们会讲,这也是Java8的一个新特性,这里先使用一下
        Optional<Employee> first = employees.stream().filter(emp -> emp.getAge() > 20).findFirst();
        System.out.println(first.get());
//        返回年龄大于20的任意一个员工
        Optional<Employee> any = employees.parallelStream().filter(emp -> emp.getAge() > 20).findAny();
        System.out.println(any.get());

//        返回年龄大于20的员工个数
        long count = employees.stream().filter(emp -> emp.getAge() > 20).count();
        System.out.println(count);
//        查询工资最高的员工
        Optional<Employee> max = employees.stream().max((e1, e2) -> e1.getSalary().compareTo(e2.getSalary()));
        System.out.println(max.get());
//        查找最低的工资
        Optional<Double> min = employees.stream().map(Employee::getSalary).min(Double::compare);
        System.out.println(min.get());
//        迭代多有信息
        employees.stream().forEach(System.out::println);
    }


}
举报

相关推荐

0 条评论