這篇文章主要介紹了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短路終端操作的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。