短路终端操作

Java8 新特性 Stream 练习实例

传入一个谓词,返回传为boolean,如果符合条件,则直接结束流。

匹配所有 allMatch

任意匹配 anymMatch

不匹配 noneMatch

查找首个 findFirst

查找任意 findAny

匹配所有 allMatch

//匹配所有 allMatch
@Test
public void allMatchTest() {
boolean b = list.stream()
//所有的商品价格都大于40
.allMatch(sku -> sku.getSkuPrice() > 40);
System.out.println(b);
/** 返回值
* true
*/
}

任意匹配 anymMatch

//任意匹配 anymMatch
@Test
public void anyMatchTest() {
boolean b = list.stream()
//只要有一个totalNum数量为3就反回true
.anyMatch(sku -> sku.getTotalNum() == 3);
System.out.println(b);
/** 输出的结果:
* true
*/
}

不匹配 noneMatch

 //不匹配 noneMatch
@Test
public void noneMatchTest() {
boolean b = list.stream()
//没有totalNum为2的,所以返回值为true,
.noneMatch(sku -> sku.getTotalNum() == 2);
System.out.println(b);
/**
* 没有匹配才选true
*/
}

查找首个 findFirst

//查找首个 findFirst
@Test
public void findFirstTest() {
//我自己的Optional里面有介绍,,findFirst()方法,只要有第一个就返回
Optional<Sku> first = list.stream().findFirst();
//从Optional里面取出来值
Sku sku = first.get();
//比json格式输出结果
System.out.println(JSON.toJSONString(sku,true));
/**
* {
* "skuCategory":"ELECTRONICS",
* "skuId":100001,
* "skuName":"无人机",
* "skuPrice":4999.0,
* "totalNum":1,
* "totalPrice":4999.0
* }
*/
}

查找任意 findAny

//查找任意 findAny
@Test
public void findAnyTest() {
//从list中任意取出来一个
Optional<Sku> any = list.stream().findAny();
//从Optional里面取值
Sku sku = any.get();
//以json输出结果
System.out.println(JSON.toJSONString(sku, true));
/**
* {
* "skuCategory":"ELECTRONICS",
* "skuId":100001,
* "skuName":"无人机",
* "skuPrice":4999.0,
* "totalNum":1,
* "totalPrice":4999.0
* }
*/
}

细节决定成败!

个人愚见,如有不对,恳请扶正!

Java8 新特性 Stream 短路终端操作的更多相关文章

  1. Java8 新特性 Stream 非短路终端操作

    非短路终端操作 Java8 新特性 Stream 练习实例 非短路终端操作,就是所有的元素都遍厉完,直到最后才结束.用来收集成自己想要的数据. 方法有: 遍厉 forEach 归约 reduce 最大 ...

  2. Java8 新特性 Stream 无状态中间操作

    无状态中间操作 Java8 新特性 Stream 练习实例 中间无状态操作,可以在单个对单个的数据进行处理.比如:filter(过滤)一个元素的时候,也可以判断,比如map(映射)... 过滤 fil ...

  3. Java8 新特性之集合操作Stream

    Java8 新特性之集合操作Stream Stream简介 Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同 ...

  4. Java8 新特性 Stream() API

    新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...

  5. 这可能是史上最好的 Java8 新特性 Stream 流教程

    本文翻译自 https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ 作者: @Winterbe 欢迎关注个人微信公众 ...

  6. java8新特性--Stream的基本介绍和使用

    什么是Stream? Stream是一个来自数据源的元素队列并可以进行聚合操作. 数据源:流的来源. 可以是集合,数组,I/O channel, 产生器generator 等 聚合操作:类似SQL语句 ...

  7. Java8新特性Stream流应用示例

    Java8新特性介绍 过滤集合 List<String> newList = list.stream().filter(item -> item != null).collect(C ...

  8. Java8 新特性 Stream 练习实例

    练习实例 配合Java8 新特性 Steam() API 使用 //没有写get set 构造方法 public class Sku { private Integer skuId; private ...

  9. Java8 新特性Stream 的学习和使用方法

    流(Stream) 流是java 8 中新引入的特性,用来处理集合中的数据,Stream 是一个来自数据源的元素队列并支持聚合操作. Java 中 Stream 不会存储元素. 数据源 流的来源. 可 ...

随机推荐

  1. Winfrom中设置ZedGraph显示多个标题(一个标题换行显示)效果

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. sql 动态行转列 (2005及以上版本)

    表数据: sql: --pivot方案 sql 2005及以上版本 ) Set @sql=(Select DISTINCT ','+ N'[' +pref_name+N']' FROM dbo.Pop ...

  3. webpack4 打包静态资源

    demo 代码点此,开始之前,先做点准备工作. 准备工作 准备一个空文件夹,然后执行下列命令: npm init -y npm i -D webpack webpack-cli 然后创建一个 dist ...

  4. Angular i18n(国际化方案)

    一.引言 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无 ...

  5. python 排序和查找算法

    一.搜索 1.顺序查找 数据存储在具有线性或顺序关系的结构中时,可顺序访问查找 def sequential_search(ilist, item): pos = 0 while pos < l ...

  6. itextpdf5操作表格

    下面是一些对表格排版的常用方法,是在制作pdf的时候通过查看ipa和一些博客积累下来的. 包括,表格的宽度,对齐方式,表的页眉页脚,前后间距,padding: 单元格对齐方式,线条设置,段落于单元格之 ...

  7. Django框架(十九)--Django rest_framework-认证组件

    一.什么是认证 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件 二.利用token记录认证过的用户 1.什么是tok ...

  8. python之便携式mysql类和tornado mysql长链接

    mymysql.py class MyMysql2(object): def __init__(self, host = '', user = '', passwd = '', db = '', po ...

  9. java1.8新特性整理(全)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yitian_66/article/deta ...

  10. 201871010133-赵永军《面向对象程序设计(java)》第十二周学习总结

    201871010133-赵永军<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...