Java8新特性Stream使用心得之:allMatch

实际应用

首先描述碰到的业务场景:给其他部门提供的接口提供的查询参数(类型)由一个变成多个(Integer变为List<Integer>),且类型字段只能为1、2、3、4四种情况。
毋庸置疑,入参一定是要校验的,有什么优雅的办法校验此种业务情况呢?
核心目的:校验参数,只有1、2、3、4四种类型为合理入参。
校验代码:

boolean result = typeList().stream().allMatch(type -> type == 1 || type == 2 || type == 3 || type == 4 );

OK,用上述代码就可以达到目的。那么接下来看一下Strean的match家族。

扩展

主要讲一下stream的count、anyMatch、allMatch、noneMatch操作。函数定义:

	long count();  
  
    boolean anyMatch(Predicate<? super T> predicate);  
  
    boolean allMatch(Predicate<? super T> predicate);  
  
    boolean noneMatch(Predicate<? super T> predicate);

count

跟size功能一样,返回值都是集合元素的长度。不同的是,流是集合的一个高级工厂,中间操作是工厂里的每一道工序,我们对这个流操作完成后,可以进行元素的数量的和;

anyMatch

在判断条件里,任意一个元素成功,即返回true;

allMatch

判断条件中所判断的元素,所有都是true,才返回true;

noneMatch

与allMatch相反,判断条件中所判断的元素,所有都是false,才返回true;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值