java拓展----探秘Lambda 表達式
目錄
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 voidmain(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,intb,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 表達式