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

网友投稿 229 2022-12-19


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

这篇文章主要介绍了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.getTotalNuUeDFvdhtNym() == 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 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 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

* }

*/

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Swing JToggleButton开关按钮的实现
下一篇:IDEA JavaWeb项目启动运行后出现404错误的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~