如果使用過foreach方法來遍歷集合,會發現在lambda表示式中的return並不會終止迴圈,這是由於lambda的底層實現導致的,看下面的例子:
public static void main(string args)
});
} //返回結果: //s = a //s = b //s = c
可以看到在foreach方法中即是採用了return,迴圈卻仍在繼續,那有什麼辦法能跳出迴圈呢?
跳出的前提肯定是滿足了某一條件的,所以可以使用anymatch()方法:anymatch()裡接收乙個返回值為boolean型別的表示式,只要返回true就會終止迴圈,這樣可以將業務邏輯寫在返回判斷結果前。
list.stream()
.anymatch(s -> );
// do something
// s=a
// do something
// s=b
同理,採用類似的思路可以使用filter()方法,思路是一樣的,其中findany表示只要找到滿足的條件時停止。
list.stream()
.filter(s -> ).findany();
//返回結果:
//s = a
//s = b
forEach跳出迴圈體
在foreach中,不能使用 continue 和 break 可以使用 return 或 return false 跳出迴圈,效果與 for 中 continue 一樣。注意該方法無法一次結束所有迴圈。foreach 跳出本次迴圈,使用return 1,2,3,4,5 foreach functi...
forEach方法如何跳出迴圈
1.for方法跳出迴圈 function getitembyid arr,id return item 2.foreach方法跳出迴圈 function getitembyid arr,id catch e return item 3.備註 3.1 foreach 不能使用break和continu...
forEach方法如何跳出迴圈
1.for方法跳出迴圈 function getitembyid arr,id return item 2.foreach方法跳出迴圈 function getitembyid arr,id catch e return item 3.補充 3.1 foreach 不能使用break和continu...