这篇文章主要介绍了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短路终端操作的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。