Java8 lambda表示式10個示例
阿新 • • 發佈:2019-01-04
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
|