现在的位置: 首页 > 编程语言 > 正文

Java8新特性Stream短路终端操作实例解析

2020年02月13日 编程语言 ⁄ 共 1535字 ⁄ 字号 评论关闭

这篇文章主要介绍了Java8新特性Stream短路终端操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

匹配所有 allMatch 任意匹配 anymMatch 不匹配 noneMatch 查找首个 findFirst 查找任意 findAny

匹配所有 allMatch

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

任意匹配 anymMatch

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

不匹配 noneMatch

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

查找首个 findFirst

//查找首个 findFirst@Testpublic 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@Testpublic 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短路终端操作实例解析

以上就上有关Java8新特性Stream短路终端操作实例解析的相关介绍,要了解更多java,Stream,短路,终端操作内容请登录学步园。

抱歉!评论已关闭.