2016-11-16 78 views
0

break和continue語句在Array.forEach(..)中不起作用。 有沒有其他方法可以做到這一點?有沒有辦法將「繼續」放在foreach arraylist中

+3

你根本就沒有在你的拉姆達而不是顯式調用''continue''的。 – f1sh

+3

這取決於具體的使用情況。你可以使用'filter'來過濾出你想要「繼續」循環的元素,並且根據用例('limit()'''findFirst())可以做很多事情來代替break。 '等等......) – Eran

+1

簡而言之,函數式編程不適用於程序性實體,如break和continue。 'forEach'不是一個控制結構,它是一種方法。 – RealSkeptic

回答

2

你不能在Java 8中做到這一點。你可以使用Exception來破解代碼。這不太好,但如果你需要的話,這是可行的。

像這樣:

try { 
    Array.forEach((x) -> { 
     if (condition) { 
      throw new MyException(); 
     } 
    }); 
} catch (MyException e) { 
    // broke from loop 
} 
+0

但是這會破壞整個循環的執行。 – f1sh

+0

那是正常的休息行爲 – XtremeBaumer

相關問題