lambda表达式Stream流学习八、九—Stream的终止操作 : 查找与匹配、归约与收集、分组

Java8的lambda表达式学习记录—lambda表达式Stream流学习八、久—Stream的中间操作 : 查找与匹配、归约与收集、分组

一,查找与匹配

  Stream流的终止操作,以下操作都是Stream.调用:

  1. allMatch——检查是否匹配所有元素,返回值为boolean
  2. anyMatch——检查是否至少匹配一个元素,返回值为boolean
  3. noneMatch——检查是否没有匹配的元素,返回值为boolean
  4. findFirst——返回第一个元素,返回值为Optional集合
  5. findAny——返回当前流中的任意元素,返回值为Optional
  6. count——返回流中元素的总个数,返回值为Long
  7. max——返回流中的最大值,返回值为Optional
  8. min——返回流中的最小值,返回值为Optional
//Employee对象新增枚举类型
public class Employee {
   
	private status status;
    public enum status{
   
       FREE,
       BUSY,
       VOCATION;
    }
}
@Test
public void test1(){
   
	List<Employee> list = Arrays.asList(
	       new Employee("张三", 18, 9999.99, Employee.status.FREE),//枚举类型
	       new Employee("李四", 20, 7777.77, Employee.status.BUSY),
	       new Employee("王五", 36, 5555.55, Employee.status.VOCATION),
	       new Employee("赵六", 50, 3333.33, Employee.status.FREE),
	       new Employee("田七", 10, 2222.22, Employee.status.VOCATION)
	);

    Boolean b1 = list.stream().allMatch((e) -> e.getStatus().equals(Employee.status.BUSY));//.allMatch匹配所有
    System.out.println(b1);//是否所有的都和BUSY相等, false
    
    Boolean b2 = list.stream().anyMatch(e -> e.getStatus().equals(Employee.status.BUSY));//.anyMatch匹配至少一个
    System.out.println(b2);//至少有一个和BUSY相等, true
    
    Boolean b3 = list.stream().noneMatch(e -> "花招虫".equals(e.getName()));//.noneMatch是否没有匹配的元素
    System.out.println(b3);//没有值与之相匹配, true
    
    Optional<Employee> op = list.stream().sorted(Comparator.comparingDouble(Employee::getSalary))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值