欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中Lamda表達(dá)式講解

 更新時(shí)間:2021年12月30日 16:55:42   作者:Ocean..  
本文詳細(xì)講解了java中的Lamda表達(dá)式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Lamda表達(dá)式

  • 1、λ 希臘字母表中排序第十一位的字母,英語名稱為 Lamda
  • 2、避免匿名內(nèi)部類定義過多
  • 3、可以讓你的代碼看起來很簡潔
  • 4、去掉了一堆沒有意義的代碼,留下核心的邏輯
  • 5、其實(shí)質(zhì)屬于函數(shù)式編程的概念

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

(params) -> statement[語句]

(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ù)式接口,我們可以通過lamda表達(dá)式來創(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、局部內(nèi)部類
        class Like3 implements ILike{
            @Override
            public void lamda() {
                System.out.println("i like lamda3");
            }
        }
        like = new Like3();
        like.lamda();

        //5、匿名內(nè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");
    }
}

輸出:

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

package com.haiyang.lamda;

public class TestLamda02 {

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

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

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

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

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

}

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

輸出:

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

package com.haiyang.lamda;

public class TestLamda02 {

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

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

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


        //Lamda簡化花括號(hào)(只有一個(gè)語句時(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);
}

輸出:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java語言與平臺(tái)基礎(chǔ)知識(shí)點(diǎn)

    java語言與平臺(tái)基礎(chǔ)知識(shí)點(diǎn)

    在本篇文章里小編給大家整理的是一篇關(guān)于java語言與平臺(tái)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2019-11-11
  • MyBatis 核心配置文件及映射文件詳解

    MyBatis 核心配置文件及映射文件詳解

    MyBatis是支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的持久層框架,本文重點(diǎn)介紹MyBatis 核心配置文件及映射文件,需要的朋友可以參考下
    2023-01-01
  • java的各種類型轉(zhuǎn)換全部匯總(推薦)

    java的各種類型轉(zhuǎn)換全部匯總(推薦)

    下面小編就為大家?guī)硪黄猨ava的各種類型轉(zhuǎn)換全部匯總(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • SpringBoot中整合Minio文件存儲(chǔ)的安裝部署過程

    SpringBoot中整合Minio文件存儲(chǔ)的安裝部署過程

    這篇文章主要介紹了SpringBoot整合Minio文件存儲(chǔ)的相關(guān)知識(shí),詳細(xì)介紹了Minio安裝部署過程,需要的朋友可以參考下
    2022-04-04
  • Spring MVC學(xué)習(xí)筆記之Controller查找(基于Spring4.0.3)

    Spring MVC學(xué)習(xí)筆記之Controller查找(基于Spring4.0.3)

    這篇文章主要給大家介紹了關(guān)于Spring MVC學(xué)習(xí)筆記之Controller查找(基于Spring4.0.3)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Netty分布式固定長度解碼器實(shí)現(xiàn)原理剖析

    Netty分布式固定長度解碼器實(shí)現(xiàn)原理剖析

    這篇文章主要為大家介紹了Netty分布式固定長度解碼器原理剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題

    解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題

    這篇文章主要介紹了解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 淺談java獲取UUID與UUID的校驗(yàn)

    淺談java獲取UUID與UUID的校驗(yàn)

    這篇文章主要介紹了java獲取UUID與UUID的校驗(yàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java反射機(jī)制概念、原理與用法總結(jié)

    Java反射機(jī)制概念、原理與用法總結(jié)

    這篇文章主要介紹了Java反射機(jī)制概念、原理與用法,較為詳細(xì)的分析了java反射機(jī)制的概念、原理,并結(jié)合實(shí)例形式總結(jié)分析了java反射機(jī)制的具體使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-11-11
  • SpringBoot EasyPoi動(dòng)態(tài)導(dǎo)入導(dǎo)出的兩種方式實(shí)現(xiàn)方法詳解

    SpringBoot EasyPoi動(dòng)態(tài)導(dǎo)入導(dǎo)出的兩種方式實(shí)現(xiàn)方法詳解

    項(xiàng)目里使用的是EasyPoi來處理導(dǎo)入導(dǎo)出功能的。近日因業(yè)務(wù)需求調(diào)整,一些導(dǎo)出功能的導(dǎo)出列需要根據(jù)不同的條件動(dòng)態(tài)導(dǎo)出
    2022-09-09

最新評(píng)論