例如:numbers.stream().filter(i -> i % 2 == 0).distinct().forEach(System.out::println);求懂的大神解答
1 回答

浮云間
TA貢獻1829條經驗 獲得超4個贊
->是Java 8新增的Lambda表達式中,變量和臨時代碼塊的分隔符,即: (變量) -> {代碼塊} 如果代碼塊只有一個表達式,大括號可以省略。如果變量類型可以自動推斷出來,可以不寫變量類型。 ::是類似于C++的域運算符,獲取方法使用的。 stream()也是JDK8新增的流,你的表達式中將numbers轉換為流,就可以惰性處理,這樣只有變量要用的時候才會被調用,專門處理較多的數字或者字符串(如配合readAllLines()方法使用),i -> i % 2 == 0就是自動判斷了i的類型(可能是int型,我沒法判斷),這樣就將numbers中所有的偶數過濾出來了(distinct()保證了每個數字只保留一個),然后將這些過濾出的數字每個占用一行地打印出來。
添加回答
舉報
0/150
提交
取消