国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java8新特性lambda學習

這篇具有很好參考價值的文章主要介紹了Java8新特性lambda學習。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Lambda表達式

Lambda是一個匿名函數(shù),我們可以把Lambda表達式理解為是一段可以傳遞的代碼(將代碼像數(shù)據(jù)一樣進行傳遞)。使用它可以寫出更簡潔、更靈活的代碼。作為一種更緊湊的代碼風格,使Java的語言表達能力得到了提升。
本質(zhì): 作為函數(shù)式接口的實例, 沒有接口就沒意義了.

    // 簡單使用舉例
    @Test
    public void test1(){
        Runnable r1 = new Runnable() {
            @Override
            public void run() {
                System.out.println("r1 is running...");
            }
        };
        r1.run();
        // lambda寫法
        Runnable r2 = () -> System.out.println("r2 is running...");
        r2.run();
    }

    @Test
    public void test2(){
        Comparator<Integer> intcmp = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return Integer.compare(o1, o2);
            }
        };
        System.out.println(intcmp.compare(1, 2));
        Comparator<Integer> intcmp2 = Integer::compare; // 方法引用
        // 和intcmp2等價, 但lambda
        Comparator<Integer> intcmp3 = (Integer o1, Integer o2) -> Integer.compare(o1,o2);
        // 和intcmp2等價, 但lambda
        Comparator<Integer> intcmp4 = (o1, o2) -> Integer.compare(o1,o2);
        System.out.println(intcmp2.compare(2, 1));
        System.out.println(intcmp3.compare(2, 1));
        System.out.println(intcmp4.compare(2, 1));
    }

這兩個代碼片段分別創(chuàng)建了匿名內(nèi)部類的實例,分別用于實現(xiàn)Comparator<Integer>接口和Runnable接口。
當接口只有一個抽象方法時(函數(shù)式接口)用lambda改寫會更簡潔. 在實際開發(fā)中,通常更傾向于使用Lambda 表達式,因為它使代碼更簡潔且易讀。

操作符解釋以及l(fā)ambda的6種語法格式

-> : lambda操作符
-> 左邊: lambda形參列表, 其實就是接口中的抽象方法中的形參列表
-> 右邊: lambda體, 其實就是重寫的抽象方法的方法體

語法格式一: 無參, 無返回值

Runnable r2 = () -> System.out.println("r2 is running...");

語法格式二: 一個參數(shù), 無返回值

Consumer<String> cons2 = (String s) -> System.out.println(s);
cons2.accept("cons2");

語法格式三: 數(shù)據(jù)類型可以省略, 因為可由編譯器推斷得出, 稱為'類型推斷'

Comparator<Integer> intcmp4 = (o1, o2) -> Integer.compare(o1,o2);
Consumer<String> cons2 = (s) -> System.out.println(s);

語法格式四: lambda若只需要一個參數(shù), 參數(shù)的小括號可以省略

Consumer<String> cons2 = s -> {System.out.println(s);};

語法格式五: lambda需要兩個或以上的參數(shù), 多條執(zhí)行語句, 并且可以有返回值

Comparator<Integer> intcmp5 = (o1, o2) -> {
    System.out.println("intcomp5");
    return Integer.compare(o1, o2);
};
System.out.println(intcmp5.compare(2, 3));

語法格式六: lambda只有一條語句, return與大括號若有, 都可以省略

Comparator<Integer> intcmp4 = (o1, o2) -> Integer.compare(o1,o2);

總結

-> 左邊: lambda形參列表的參數(shù)類型可以省略(因為有類型推斷); 如果lambda形參列表只有一個參數(shù), 括號()也可以省略;
-> 右邊: lambda體應該用一對{}包裹; 如果lambda體只有一條執(zhí)行語句(可能是return 語句), 可以省略這一對{}和return關鍵字.文章來源地址http://www.zghlxwxcb.cn/news/detail-746881.html

到了這里,關于Java8新特性lambda學習的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java新特性:Lambda表達式

    Java新特性:Lambda表達式

    Java新特性:Lambda表達式 Lambda 表達式(Lambda expression),也可稱為閉包(Closure),是 Java(SE)8 中一個重要的新特性。Lambda 表達式允許我們通過表達式來代替功能接口。Lambda 表達式就和方法一樣,它提供了一個正常的參數(shù)列表和一個使用這些參數(shù)的主體(body,可以是一個表

    2024年02月13日
    瀏覽(33)
  • Java 8 新特性——Lambda 表達式(2)

    Java 8 新特性——Lambda 表達式(2)

    ????????Java Stream函數(shù)式編程接口最初在Java 8中引入,并且與 lambda 一起成為Java開發(fā)里程碑式的功能特性,它極大的方便了開放人員處理集合類數(shù)據(jù)的效率。 ????????Java Stream就是一個數(shù)據(jù)流經(jīng)的管道,并且在管道中對數(shù)據(jù)進行操作,然后流入下一個管道。有學過linux

    2024年02月11日
    瀏覽(27)
  • Java 8 新特性之Lambda表達式

    函數(shù)式編程(Functional Programming)是把函數(shù)作為基本運算單元,函數(shù)可以作為變量,可以接收函數(shù),還可以返回函數(shù)。歷史上研究函數(shù)式編程的理論是Lambda演算,所以我們經(jīng)常把支持函數(shù)式編程的編碼風格稱為Lambda表達式。 在Java中使用Lambda表達式的前提:需要是函數(shù)接口。

    2024年01月22日
    瀏覽(30)
  • java學習路程之篇三、進階知識、面向對象高級、接口新特性、代碼塊、內(nèi)部類、Lambda表達式、窗體、組件、事件

    概述 生成值類型響應式數(shù)據(jù) 通過 .value 值修改 生成對象和數(shù)組類型的響應式對象選用 reactive 方式比較好 html JavaScript 概述 reactive 方法根據(jù)傳入的對象,創(chuàng)建返回一個深度響應式對象。響應式對象看起來和傳入的對象一樣。但是,響應式對象屬性值改動,不管層級有多深,都

    2024年02月16日
    瀏覽(21)
  • 【Java系列】JDK 1.8 新特性之 Lambda表達式

    【Java系列】JDK 1.8 新特性之 Lambda表達式

    Lambda是一個匿名函數(shù),我們可以將Lambda表達式理解為一段可以傳遞的代碼(將代碼像數(shù)據(jù)一樣傳遞)。使用它可以寫出簡潔、靈活的代碼。作為一種更緊湊的代碼風格,使java語言表達能力得到提升。 結果: ?19:43:39.303 [main] INFO com.chen.test.JAVA8Features.Demo01 - 我是沒有使用Lambda表

    2024年02月22日
    瀏覽(26)
  • JAVA8-lambda表達式8:在設計模式-模板方法中的應用

    JAVA8-lambda表達式1:什么是lambda表達式 JAVA8-lambda表達式2:常用的集合類api JAVA8-lambda表達式3:并行流,提升效率的利器? JAVA8-lambda表達式4:Optional用法 java8-lambda表達式5:toMap引發(fā)的線上故障 JAVA8-lambda表達式6:重構和定制收集器 JAVA8-lambda表達式7:重要的函數(shù)接口 最近在公司

    2024年02月14日
    瀏覽(26)
  • Java—JDK8新特性—Lambda表達式【內(nèi)含思維導圖】

    Java—JDK8新特性—Lambda表達式【內(nèi)含思維導圖】

    目錄 JDK8新特性 2.Lambda表達式 思維導圖 2.1?什么是Lambda表達式 2.2 為什么使用Lamdba表達式 2.3 Lambda表達式基本語法 2.4 類型推斷 2.5 Lambda練習 2.6 Lambda常用場景 ????????官網(wǎng)提供網(wǎng)址:JDK 8 Features ????????Lamdba是一個 匿名函數(shù) ,可以把Lamdba表達式理解為是一段可以傳遞的

    2024年02月03日
    瀏覽(27)
  • Java學習——lambda表達式

    Java學習——lambda表達式

    什么是Lambda表達式? 可以將Lambda表達式理解為一個匿名函數(shù); Lambda表達式允許將一個函數(shù)作為另外一個函數(shù)的參數(shù); 我們可以把 Lambda 表達式理解為是一段可以傳遞的代碼(將代碼作為實參),也可以理解為函數(shù)式編程, 將一個函數(shù)作為參數(shù)進行傳遞 。 為什么要引入Lambda表

    2024年02月04日
    瀏覽(38)
  • JDK1.8新特性(部分)【Lambda表達式、函數(shù)式接口】--學習JavaEE的day41

    day41 JDK1.8新特性簡介 速度更快 - 優(yōu)化底層源碼,比如HashMap、ConcurrentHashMap 代碼更少 - 添加新的語法Lambda表達式 強大的Stream API 便于并行 最大化減少空指針異常 - Optional Lambda表達式 簡介 Lambda是一個匿名函數(shù)(方法), 允許把函數(shù)作為一個方法的參數(shù) 。利用Lambda表達式可以寫出

    2024年04月25日
    瀏覽(22)
  • C++11新特性lambda 表達式

    C++11新特性lambda 表達式

    Lambda 表達式的基本語法是:[] (參數(shù)列表) - 返回值類型 {函數(shù)體}。 方括號([])表示捕獲列表,用來指定在 lambda 表達式中可以訪問的外部變量。 參數(shù)列表和返回值類型與普通函數(shù)的參數(shù)列表和返回值類型相同。 函數(shù)體則是實際的代碼邏輯。 不接受任何參數(shù):[] { 函數(shù)體 } 接受

    2024年02月14日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包