1. 程式人生 > >Java8 lambda表示式10個示例

Java8 lambda表示式10個示例

http://www.importnew.com/16436.html

Java 8 lambda表示式示例

我個人對Java 8釋出非常激動,尤其是lambda表示式和流API。越來越多的瞭解它們,我能寫出更乾淨的程式碼。雖然一開始並不是這樣。第一次看到用lambda表示式寫出來的Java程式碼時,我對這種神祕的語法感到非常失望,認為它們把Java搞得不可讀,但我錯了。花了一天時間做了一些lambda表示式和流API示例的練習後,我開心的看到了更清晰的Java程式碼。這有點像學習泛型,第一次見的時候我很討厭它。我甚至繼續使用老版Java 1.4來處理集合,直到有一天,朋友跟我介紹了使用泛型的好處(才意識到它的好處)。所以基本立場就是,不要畏懼lambda表示式以及方法引用的神祕語法,做幾次練習,從集合類中提取、過濾資料之後,你就會喜歡上它。下面讓我們開啟學習Java 8 lambda表示式的學習之旅吧,首先從簡單例子開始。

例1、用lambda表示式實現Runnable

我開始使用Java 8時,首先做的就是使用lambda表示式替換匿名類,而實現Runnable介面是匿名類的最好示例。看一下Java 8之前的runnable實現方法,需要4行程式碼,而使用lambda表示式只需要一行程式碼。我們在這裡做了什麼呢?那就是用() -> {}程式碼塊替代了整個匿名類

1 2 3 4 5 6 7 // Java 8之前: new Thread(new Runnable() { @Override
public void run() { System.out.println("Before Java8, too much code for too little to do"); } }).start();
1 2 //Java 8方式: new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

輸出:

1 2 too much code, for too little to do Lambda expression rocks !!

這個例子向我們展示了Java 8 lambda表示式的語法。你可以使用lambda寫出如下程式碼:

1 2 3 (params) -> expression (params) -> statement (params) -> { statements }

例如,如果你的方法不對引數進行修改、重寫,只是在控制檯列印點東西的話,那麼可以這樣寫:

1 () -> System.out.println("Hello Lambda Expressions");

如果你的方法接收兩個引數,那麼可以寫成如下這樣:

1 (int