JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

編程語言 Java 程序員 文章 程序員小白 2017-06-19

大家好,我是程序員小白。最近有些小夥伴問我java能不能像c#一樣支持lambda那樣的語法,正好我之前學習過jdk8的一個新特性,就是Lambda表達式,在這裡我就寫一個簡單的入門教程給大家參考,如果有疑問也歡迎留言評論共同學習。

什麼是Lambda表達式?

Lambda 是一個匿名函數,我們可以把 Lambda表達式理解為是一段可以傳遞的代碼(將代碼像數據一樣進行傳遞)

使用Lambda有什麼好處?

可以寫出更簡潔、更靈活的代碼。作為一種更緊湊的代碼風格,使Java的語言表達能力得到了提升。

廢話不多說,舉個例子就明白了

要求:給定一個員工集合。查找年齡大於20的男性員工,並按照年齡正序排列,如果年齡一致,按姓名正序排列,並輸出姓名。

首先我們構建出一個存有員工對象信息的List集合

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

傳統的寫法:

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

沒有使用lambda表達式的寫法

Lambda表達式寫法:

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

使用了jdk8lambda表達式的寫法

再來看看輸出的結果:

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

可以看到兩種方式的結果完全一樣

怎麼樣,對比一下兩種寫法。傳統寫法用了將近40行的代碼才能完成,然而使用了lambda之後,有效代碼不足10行,就完全可以解決原本40行代碼才能完成的任務。是不是有興趣學習了呢?

下面講解基礎語法

Java8中,想要使用Lambda表達式,需要使用一個全新的操作符"->"該操作符被稱為"Lambda操作符",它把表達式分為了左右兩部分。

左邊:Lambda中所使用的參數列表

右邊:Lambda所要執行的操作。

Example 1:無參數,無返回值的寫法

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

Example 2:有參數,無返回值的寫法

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

Example 3:有參數(多個),有返回值的寫法

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

主要的語法其實很簡單,只有上面的三個例子,學會了就會用基本語法了,剩下的就是靈活運用和學習接口的事情了,下面我寫一個綜合運用的例子供大家參考。

JAVA8新特性之Lambda入門第一講:Lambda表達式能幹什麼?基礎語法彙總

寫在後面的話

今天的基礎語法的教程就寫到這裡了,大家如果有疑問歡迎評論留言一起討論,也可以私信聯繫我一起交流問題。後續我會繼續更新Java8的新特性,有興趣的朋友也可以關注我獲取最新的文章動態。

(文章由程序員小白原創,轉載請標明出處,侵權必究)

相關推薦

推薦中...