溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中的Lambda表達(dá)式是什么

發(fā)布時(shí)間:2021-11-16 10:28:03 來源:億速云 閱讀:134 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Java中的Lambda表達(dá)式是什么”,在日常操作中,相信很多人在Java中的Lambda表達(dá)式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中的Lambda表達(dá)式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

以下是語法的基本示例:

(parameter1, parameter2) => expression

或者

(parameter1, parameter2) => {code block}

Lambda 表達(dá)式非常有限,如果它不是 void,則必須立即返回一個(gè)值。他們不能使用諸如 if for 之類的關(guān)鍵字來保持簡單性。如果需要更多行代碼,則可以改用代碼塊。

現(xiàn)在在實(shí)現(xiàn) lambda 表達(dá)式時(shí),不能只使用表達(dá)式。Lambda 是函數(shù)式接口的實(shí)現(xiàn)。函數(shù)式接口是只有一個(gè)抽象方法的接口。lambda 的好處是它們允許你實(shí)現(xiàn)方法而無需實(shí)現(xiàn)接口的類和實(shí)例化對象。

下面是一個(gè)例子:

interface FuncInterface
{
    // 抽象函數(shù)
    void abstractFun(int x);

    // 非抽象(或默認(rèn))函數(shù)
    default void normalFun()
    {
       System.out.println("Hello");
    }
}

class Test
{
    public static void main(String args[])
    {
        // 實(shí)現(xiàn)上述功能接口的 lambda 表達(dá)式。 
        // 該接口默認(rèn)實(shí)現(xiàn) abstractFun()
        FuncInterface fobj = (int x)->System.out.println(2*x);

        // 這會(huì)調(diào)用上面的 lambda 表達(dá)式并打印 10。
        fobj.abstractFun(5);
    }
}

Lambda 表達(dá)式通常用作函數(shù)的參數(shù)。為了提高可讀性,你還可以將 lambda 表達(dá)式存儲(chǔ)在變量中,只要該類型是一個(gè)只有一個(gè)方法、相同數(shù)量的參數(shù)和相同返回類型的接口。

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 的一個(gè)常見用途是創(chuàng)建線程。這是一個(gè)使用 lambda 代碼塊實(shí)現(xiàn) Runnable 對象的示例,供線程執(zhí)行。

// 可運(yùn)行的 Lambda
Runnable task2 = () -> { System.out.println("Task #2 is running"); };

// 啟動(dòng)線程
new Thread(task2).start();

到此,關(guān)于“Java中的Lambda表達(dá)式是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI