溫馨提示×

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

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

java中Lamda表達(dá)式是什么

發(fā)布時(shí)間:2021-12-31 18:31:04 來(lái)源:億速云 閱讀:246 作者:柒染 欄目:開發(fā)技術(shù)

java中Lamda表達(dá)式是什么,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

Lamda表達(dá)式

  • 1、λ 希臘字母表中排序第十一位的字母,英語(yǔ)名稱為 Lamda

  • 2、避免匿名內(nèi)部類定義過(guò)多

  • 3、可以讓你的代碼看起來(lái)很簡(jiǎn)潔

  • 4、去掉了一堆沒(méi)有意義的代碼,留下核心的邏輯

  • 5、其實(shí)質(zhì)屬于函數(shù)式編程的概念

(params)-> expression[表達(dá)式]

(params) -> statement[語(yǔ)句]

(params) -> {statements}

a -> System.out.println("i like lamda-->"+a)

new Thread (()->System.out.println(“多線程學(xué)習(xí)。。。?!?).start();

怎么理解

  • 1、理解Functional interface(函數(shù)式接口)是學(xué)習(xí)java8 lamda表達(dá)式的關(guān)鍵所在。

  • 2、函數(shù)式接口的定義:

任何接口,如果只包含唯一一個(gè)抽象方法,那么它就是一個(gè)函數(shù)式接口。

public interface Runnable{
	public abstract void run();
}

對(duì)于函數(shù)式接口,我們可以通過(guò)lamda表達(dá)式來(lái)創(chuàng)建該接口的對(duì)象

代碼推導(dǎo)λ表達(dá)式

package com.haiyang.lamda;

public class TestLamda01 {

    //3、靜態(tài)內(nèi)部類,同樣實(shí)現(xiàn)ILike接口
    static class Like2 implements ILike{
        @Override
        public void lamda() {
            System.out.println("i like lamda2");
        }
    }

    public static void main(String[] args) {
        ILike like = new Like();
        like.lamda();
        like = new Like2();
        like.lamda();

        //4、局部?jī)?nèi)部類
        class Like3 implements ILike{
            @Override
            public void lamda() {
                System.out.println("i like lamda3");
            }
        }
        like = new Like3();
        like.lamda();

        //5、匿名內(nèi)部類,沒(méi)有類的名稱。必須借助接口或者父類
        like = new ILike() {
            @Override
            public void lamda() {
                System.out.println("i like lamda4");
            }
        };
        like.lamda();

        //6、lamda表達(dá)式
        like = ()->{
            System.out.println("i like lamda5");
        };
        like.lamda();
    }
}


//1、定義一個(gè)只有一個(gè)抽象方法的接口
interface ILike{
    abstract void lamda();
}

//2、實(shí)現(xiàn)類
class Like implements ILike{

    @Override
    public void lamda() {
        System.out.println("i like lamda1");
    }
}

輸出:

java中Lamda表達(dá)式是什么

帶一個(gè)參數(shù)的Lamda簡(jiǎn)化

package com.haiyang.lamda;

public class TestLamda02 {

    public static void main(String[] args) {
        ILive live = null;

        //Lamda簡(jiǎn)化
        live = (int a)->{
            System.out.println("I live you"+a);
        };
        live.live(1);

        //Lamda簡(jiǎn)化參數(shù)類型
        live = (a)->{
            System.out.println("I live you"+a);
        };
        live.live(2);

        //Lamda簡(jiǎn)化括號(hào)
        live = a->{
            System.out.println("I live you"+a);
        };
        live.live(3);

        //Lamda簡(jiǎn)化花括號(hào)(只有一條語(yǔ)句時(shí))
        live = a->System.out.println("I live you"+a);
        live.live(4);
    }

}

interface ILive{
    abstract void live(int a);
}

輸出:

java中Lamda表達(dá)式是什么

帶多個(gè)參數(shù)的Lamda簡(jiǎn)化

package com.haiyang.lamda;

public class TestLamda02 {

    public static void main(String[] args) {
        ILive live = null;

        //Lamda簡(jiǎn)化
        live = (int a,int b)->{
            System.out.println("I live you"+a+b);
        };
        live.live(1,1);

        //Lamda簡(jiǎn)化參數(shù)類型(要去掉就要都去掉)
        live = (a,b)->{
            System.out.println("I live you"+a+b);
        };
        live.live(2,2);


        //Lamda簡(jiǎn)化花括號(hào)(只有一個(gè)語(yǔ)句時(shí))
        live = (a,b)->System.out.println("I live you"+a+b);
        live.live(3,3);
    }

}

interface ILive{
    abstract void live(int a,int b);
}

輸出:

java中Lamda表達(dá)式是什么

看完上述內(nèi)容,你們掌握java中Lamda表達(dá)式是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

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

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

AI