一、Lambda 表達(dá)式的基本語法
Lambda 表達(dá)式的語法形式為:(參數(shù)列表) -> { *體 }。
例如:、// 使用 Lambda 表達(dá)式實(shí)現(xiàn)一個簡單的函數(shù)接口Runnable runnable = () -> System.out.println("Hello, Lambda!");
runnable.run();二、Lambda 表達(dá)式的組成部分
- 參數(shù)列表:與傳統(tǒng)*的參數(shù)列表類似,指定了輸入?yún)?shù)的類型和名稱。如果只有一個參數(shù),且參數(shù)類型可以推斷出來,可以省略參數(shù)類型和括號。如果沒有參數(shù),則使用空括號。
- 箭頭符號(->):將參數(shù)列表和*體分隔開。
- *體:包含了具體的實(shí)現(xiàn)邏輯,可以是一條語句或多條語句組成的代碼塊。如果*體只有一條語句,可以省略花括號和 return 關(guān)鍵字。
三、Lambda 表達(dá)式的使用場景
作為函數(shù)式接口的實(shí)例:
函數(shù)式接口是只有一個抽象*的接口,可以使用 Lambda 表達(dá)式來實(shí)現(xiàn)函數(shù)式接口。例如,Java 8 中的java.util.function包中提供了許多常用的函數(shù)式接口,如Predicate、C*umer、Function等。 // 使用 Lambda 表達(dá)式實(shí)現(xiàn) Predicate 接口
Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.println(isEven.test(4)); // 輸出 true作為*的參數(shù):
可以將 Lambda 表達(dá)式作為*的參數(shù)傳遞,使代碼更加簡潔和靈活。例如,java.util.Arrays類中的sort*可以接受一個Comparator接口的實(shí)例作為參數(shù),可以使用 Lambda 表達(dá)式來實(shí)現(xiàn)比較邏輯。 Integer[] numbers = {5, 3, 8, 2, 7};
Arrays.sort(numbers, (a, b) -> a - b);
System.out.println(Arrays.toString(numbers)); // 輸出