1. 程式人生 > >java拓展----探秘Lambda 表達式

java拓展----探秘Lambda 表達式

author com star pac 個人理解 參數 ani fun 總結

目錄

  1.關於Lambda表達式

  2.java中的Lambda表達式的特性及語法格式

  3.java中Lambda表達式的實現

  4.總結

一、關於Lambda表達式

  首先Lambda表達式並不是只有java中才特有的表達式。其他編程語言中同樣也擁有這個表達式。Lambda表達式可使程序更簡潔。不同語言的Lambda表達式中定義的規範不同。具體需要看官方文檔的定義。

二、java中的Lambda表達式的特性及語法格式

  1.java中的Lambda表達式的特性

    Lambda 表達式,也可稱為閉包,它是推動 Java 8 發布的最重要新特性。

    Lambda 允許把函數作為一個方法的參數(函數作為參數傳遞進方法中)。

    使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。

  2.Lambda表達式的語法格式

    (parameters) -> expression

   或 (parameters) ->{ statements; }

三、java中Lambda表達式的實現

  java中如果要使用Lambda表達式的話,首先需要保證您的jdk版本號在1.8之上

  Lambda表達式的普通實現如下。

package com.demo.java8;

public class Java8Ordinary{
    public static void
main(String args[]){ //創建一個 Lambda 表達式只能用一個借口來接收 Java8Interface j8i=(int a,int b)->{ System.out.println(a+b); }; Java8Ordinary j8o = new Java8Ordinary(); j8o.exec(1, 2, j8i); } //此方法用來調用接口中用Lambda表達式 private void exec(int a,int
b,Java8Interface j) { j.option(a, b); } } /** * 此接口用來接收Lambda表達式,接口中只能有一個抽象方法 * @author HYSong * */ interface Java8Interface{ void option(int a,int b); }

  利用Lambda表達式實現線程

package com.demo.java8;
/**
 * Lumbda表達式可以實現只有一個方法的接口。
 * @author HYSong
 *
 */
public class Java8Thread {
    public static void main(String[] args) {
        new Thread(()->{
            System.out.println("Thread is start");
            }) .start();
    }
}

  利用Lambda表達式遍歷集合

package com.demo.java8;

import java.util.Arrays;
import java.util.List;

public class Java8Array {
    public static void main(String[] args) {
            //        定義一個數組
            String[] atp = {"Ray", "Zake",
                   "Danier",
                   "Bob","Rose",
                   "Lisa","Tom",
                   "Joy"};
            List<String> players =  Arrays.asList(atp);
            // 使用 lambda 表達式以及函數操作(functional operation)
            players.forEach((player) -> System.out.print(player));
    }
}

四、總結

  雖然說jdk的版本越來越高,但是我們實際開發過程中用得到的還是以前的版本。目前一些jdk新特性用到的不是很普及。Lambda模塊是jdk8的一個新特性,了解它可以簡化我們的代碼,方便代碼的閱讀。這對開發人員來說還是有幫助的。總的來說,Lambda模塊定義比較模糊。實際開發中我們可以用Lambda表達式去實現一些只有一個抽象類的接口,這樣可使代碼更加簡潔明了。

PS:以上內容均為個人理解。如有錯誤請留言糾正。

java拓展----探秘Lambda 表達式