Collection list = new ArrayList();
list.add("a"); list.add("b"); list.add("c");
list.iterator().forEachRemaining(lang -> System.out.println(lang));
lang -> System.out.println(lang) 是 Lambda 表達式,等同於匿名內部類別實作 Consumer<String> 介面的 accept 方法。
lang:參數名稱,可自訂(如 s、item),型別由編譯器推斷為 String。->:Lambda 運算子,分隔參數與主體。System.out.println(lang):主體運算式,單行可省略大括號與 return。| 語法形式 | 範例 | 適用場景 |
|---|---|---|
| (參數) -> 運算式 | x -> x * 2 | 單行運算並回傳值 |
| (參數) -> 語句 | s -> System.out.println(s) | 單行無回傳值動作 |
| (參數) -> { 語句塊 } | n -> { int r=n*2; return r; } | 多行邏輯、需明確 return |
import java.util.*;
public class LambdaDemo {
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
// 1. forEach + Lambda
list.forEach(s -> System.out.println("元素: " + s));
// 2. Stream API 串接操作
list.stream()
.filter(s -> s.compareTo("b") > 0)
.forEach(s -> System.out.println("過濾後: " + s));
}
}
parallelStream())。掌握 Lambda,是邁向現代 Java 開發的關鍵一步。