stream.allMatch
boolean allMatch(Predicate<? super T> predicate)
字面意思就是全部匹配。作用就是定义一个函数参数对集合中全部元素进行计算,如果返回结果都是true那最终结果为true(还有一种情况就是集合元素为空也返回true),如果有一个或多个元素计算结果为false那最终结果为false。这个方法是一个短路的中间操作,既然是短路操作,那就不需要执行完流中全部元素,只要达到要求就中断操作。看一个例子:
void stream_allMatch() {List<Integer> list = List.of(2,5,8,9,4,20,11,43,55);boolean bo = list.stream().allMatch(a -> a>1);System.out.println(bo);boolean bo2 = list.stream().allMatch(a -> a>10);System.out.println(bo2);}
运行结果:
true
false
第一个输出很明显集合所有的整数都大于1,因此方法返回值为true。
第二个输出false是因为集合中存在一个或1个以上小于10的元素,因此方法返回值为false。
我们在来验证一下这个方法的短路操作:
boolean boo = Stream.of(5,7,3,8,4,7,8,1,9,4).peek(System.out::print).allMatch(a -> a>3);System.out.println("\n"+boo);
运行输出:
573
false
第一个元素是5,大于3满足条件继续执行下一个元素,第二个元素是7也大于3满足条件因此再继续执行下一个元素,第三个元素是3不满足大于3的条件,因此中断操作返回结果false。
因为我们在流中的每个元素上都绑定了一个打印方法,只要后续操作使用(官方文档用消费这个词)了这个元素就会触发绑定的打印操作把当前元素打印出来,根据上面的步骤流中的元素执行到第三个,因此打印输出了3个元素。
此代码很好的验证了allMatch方法存在的短路操作。
stream.allMatch相关推荐
- java8 .stream().anyMatch / allMatch / noneMatch用法
java8 stream接口终端操作 anyMatch,allMatch,noneMatch anyMatch:判断的条件里,任意一个元素成功,返回true allMatch:判断条件里的元素,所有的 ...
- 巧用Stream优化老代码,太清爽了!
[文章来源]https://sourl.cn/DNU3FV Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简 ...
- 万字详解,JDK1.8新特性的Lambda、Stream和日期的使用详解
前言 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScr ...
- Java8初体验(二)Stream语法详解(转)
本文转自http://ifeve.com/stream/ Java8初体验(二)Stream语法详解 感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 上篇文章Java8初体验( ...
- 使用 Stream API 高逼格 优化 Java 代码!
作者 | 何甜甜在吗 来源 | https://juejin.cn/post/6844903945005957127 使用Stream API优化代码 Java8的新特性主要是Lambda表达式和流, ...
- java8函数式编程 视频_快速掌握Java8 Stream函数式编程技巧
函数式编程优势"函数第一位",即函数可以出现在任何地方. 可以把函数作为参数传递给另一个函数,还可以将函数作为返回值. 让代码的逻辑更清晰更优雅. 减少了可变量(Immutable ...
- Java 8 - Stream流骚操作解读
文章目录 分类 中间操作 终端操作 使用Stream流 筛选和切片 用谓词筛选 filter 筛选各异的元素 distinct 截短流 limit 跳过元素 skip 映射 对流中每一个元素应用函数 ...
- java8 stream遍历_Java8新特性:Stream流详解
1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel agg ...
- java 8 stream()
2019独角兽企业重金招聘Python工程师标准>>> 1. 流的基本概念 1.1 什么是流? 流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合. ...
最新文章
- 栈的输出_栈和队列--十进制转化为二进制
- Windows下Git Bash的基本使用
- confluence统计用户文章_公众号流量主后台数据查看及统计分析
- C++常用数据结构入门
- java自学手记——继承
- 北京普源示波器常见问题
- js 20160810
- webpack之DefinePlugin使用
- MsSql正反表达式
- 一文读懂最强中文NLP预训练模型ERNIE
- mmap函数_分析由 mmap 导致的内存泄漏
- 百度地图mysql打点_关于百度地图连接MYSQL的问题,谢谢啦!
- Redis 分布式锁遇到的序列化问题
- java分桃子_Java经典编程题分桃子
- 《An Introduction to Ray Tracing》——2.2 Ray/Sphere Intersection And Mapping
- Java方法重载注意事项
- Scan Context 学习记录
- 【Linux】/bin/sh、/bin/bash、/bin/dash、init=/sysroot/bin/bash(sh) 、init=/bin/bash(sh) 的区别
- React兼容IE8
- python之红楼梦词频统计并生成图云