選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP 如何 W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA 生成式 AI SCIPY AWS 網路安全 資料科學
     ❯   

Java 教程

Java HOME Java Intro Java Get Started Java Syntax Java Output Java Comments Java Variables Java Data Types Java Type Casting Java Operators Java Strings Java Math Java Booleans Java If...Else Java Switch Java While Loop Java For Loop Java Break/Continue Java Arrays

Java Methods

Java Methods Java Method Parameters Java Method Overloading Java Scope Java Recursion

Java Classes

Java OOP Java 類/物件 Java 類屬性 Java 類方法 Java 建構函式 Java 修飾符 Java 封裝 Java 包 / API Java 繼承 Java 多型 Java 內部類 Java 抽象 Java 介面 Java 列舉 Java 使用者輸入 Java 日期 Java ArrayList Java LinkedList Java 列表排序 Java HashMap Java HashSet Java 迭代器 Java 包裝類 Java 異常 Java 正則表示式 Java 執行緒 Java Lambda Java 高階排序

Java File Handling

Java Files Java Create/Write Files Java Read Files Java Delete Files

Java How To's

兩數相加 單詞計數 反轉字串 陣列元素求和 字串轉陣列 陣列排序 查詢陣列平均值 查詢最小元素 ArrayList 迴圈 HashMap 迴圈 遍歷列舉 矩形面積 奇數或偶數 正數或負數 平方根 隨機數

Java 參考

Java Reference Java Keywords Java String Methods Java Math Methods Java Output Methods Java Arrays Methods Java ArrayList Methods Java LinkedList Methods Java HashMap Methods Java Scanner Methods Java Iterator Methods Java Errors & Exceptions

Java 示例

Java Examples Java Compiler Java Exercises Java Quiz Java Server Java Certificate


Java Lambda 表示式


Java Lambda 表示式

Lambda 表示式是在 Java 8 中新增的。

Lambda 表示式是一個簡短的程式碼塊,它接受引數並返回一個值。Lambda 表示式類似於方法,但它們不需要名稱,並且可以直接在方法體中實現。


語法

最簡單的 lambda 表示式包含一個引數和一個表示式

parameter -> expression

要使用多個引數,請將它們用括號括起來

(parameter1, parameter2) -> expression

表示式是有限制的。它們必須立即返回一個值,並且不能包含變數、賦值或諸如 iffor 之類的語句。為了進行更復雜的操作,可以使用花括號括起來的程式碼塊。如果 lambda 表示式需要返回值,則程式碼塊應包含 return 語句。

(parameter1, parameter2) -> { code block }


使用 Lambda 表示式

Lambda 表示式通常作為引數傳遞給函式

示例

ArrayListforEach() 方法中使用 lambda 表示式列印列表中的每個專案

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

自己動手試一試 »

如果變數的型別是隻有一個方法的介面,則 Lambda 表示式可以儲存在變數中。Lambda 表示式應具有與該方法相同數量的引數和相同的返回型別。Java 中內建了許多此類介面,例如列表使用的 Consumer 介面(在 java.util 包中)。

示例

使用 Java 的 Consumer 介面將 lambda 表示式儲存在變數中

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

自己動手試一試 »

要在方法中使用 lambda 表示式,該方法應具有一個引數,其型別為單方法介面。呼叫介面的方法將執行 lambda 表示式

示例

建立一個將 lambda 表示式作為引數的方法

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}

自己動手試一試 »




×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援