2015-05-17 31 views
1

按照主題:如何獲得流中大於10的第一個數字?Java 8:如何獲取流中第一個大於10的數字?

有什麼方法可以幫助stream()在這種情況下?

我希望只要流達到第一個元素10以上,它將返回它,而不會循環其餘的。 (種「循環」) 可能嗎?

+1

過濾用'X-> X> 10',然後得到的第一個? – ZhongYu

+0

@ bayou.io我知道,但是我的問題是沒有解析整個流得到第一個的函數是什麼。 – Rollerball

+2

如果流中沒有這樣的值,該怎麼辦? – fge

回答

7

你可能尋找filterfindFirst

// new Random().ints() // or whatever the stream is 
    .filter(i -> i > 10).findFirst(); 

findFirst回報某種類型的Optional,所以你需要決定如何處理它,如果你沒有找到一個匹配。

這是類似這樣的循環:

for (int i : ...) 
    if (i > 10)  // "filter" 
     return i; // "findFirst" (may or may not be present) 
+3

一個'Optional'(或者'IntOptional'在這種情況下)具有'.isPresent() '所以你可以使用這種方法 – fge

相關問題