大家好,我是程序員小白。最近有些小夥伴問我java能不能像c#一樣支持lambda那樣的語法,正好我之前學習過jdk8的一個新特性,就是Lambda表達式,在這裡我就寫一個簡單的入門教程給大家參考,如果有疑問也歡迎留言評論共同學習。
什麼是Lambda表達式?
Lambda 是一個匿名函數,我們可以把 Lambda表達式理解為是一段可以傳遞的代碼(將代碼像數據一樣進行傳遞)
使用Lambda有什麼好處?
可以寫出更簡潔、更靈活的代碼。作為一種更緊湊的代碼風格,使Java的語言表達能力得到了提升。
廢話不多說,舉個例子就明白了
要求:給定一個員工集合。查找年齡大於20的男性員工,並按照年齡正序排列,如果年齡一致,按姓名正序排列,並輸出姓名。
首先我們構建出一個存有員工對象信息的List集合
傳統的寫法:
Lambda表達式寫法:
再來看看輸出的結果:
怎麼樣,對比一下兩種寫法。傳統寫法用了將近40行的代碼才能完成,然而使用了lambda之後,有效代碼不足10行,就完全可以解決原本40行代碼才能完成的任務。是不是有興趣學習了呢?
下面講解基礎語法
Java8中,想要使用Lambda表達式,需要使用一個全新的操作符"->"該操作符被稱為"Lambda操作符",它把表達式分為了左右兩部分。
左邊:Lambda中所使用的參數列表
右邊:Lambda所要執行的操作。
Example 1:無參數,無返回值的寫法
Example 2:有參數,無返回值的寫法
Example 3:有參數(多個),有返回值的寫法
主要的語法其實很簡單,只有上面的三個例子,學會了就會用基本語法了,剩下的就是靈活運用和學習接口的事情了,下面我寫一個綜合運用的例子供大家參考。
寫在後面的話
今天的基礎語法的教程就寫到這裡了,大家如果有疑問歡迎評論留言一起討論,也可以私信聯繫我一起交流問題。後續我會繼續更新Java8的新特性,有興趣的朋友也可以關注我獲取最新的文章動態。
(文章由程序員小白原創,轉載請標明出處,侵權必究)