Java 8 lambda初試示例詳解
表達(dá)式本質(zhì)上是一個(gè)匿名方法。讓我們來(lái)看下面這個(gè)例子:
public int add(int x, int y) { return x + y; }
轉(zhuǎn)成λ表達(dá)式后是這個(gè)樣子:
(int x, int y) -> x + y;
參數(shù)類型也可以省略,Java編譯器會(huì)根據(jù)上下文推斷出來(lái):
(x, y) -> x + y; //返回兩數(shù)之和
或者
(x, y) -> { return x + y; } //顯式指明返回值
可見(jiàn)λ表達(dá)式有三部分組成:參數(shù)列表,箭頭(->),以及一個(gè)表達(dá)式或語(yǔ)句塊。
下面這個(gè)例子里的λ表達(dá)式?jīng)]有參數(shù),也沒(méi)有返回值(相當(dāng)于一個(gè)方法接受0個(gè)參數(shù),返回void,其實(shí)就是Runnable里run方法的一個(gè)實(shí)現(xiàn)):
() -> { System.out.println("Hello Lambda!"); }
如果只有一個(gè)參數(shù)且可以被Java推斷出類型,那么參數(shù)列表的括號(hào)也可以省略:
c -> { return c.size(); } public static void main(String[] args) { Arrays.asList( "a", "b", "d" ).forEach( e -> { System.out.print( e +"\n"); } ); System.out.print( "\n--------------------------" ); Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> e1.compareTo( e2 ) ); /** * 可見(jiàn)λ表達(dá)式有三部分組成:參數(shù)列表,箭頭(->),以及一個(gè)表達(dá)式或語(yǔ)句塊。 * 下面這個(gè)例子里的λ表達(dá)式?jīng)]有參數(shù),也沒(méi)有返回值(相當(dāng)于一個(gè)方法接受0個(gè)參數(shù),返回void,其實(shí)就是Runnable里run方法的一個(gè)實(shí)現(xiàn)): * () -> { System.out.println("Hello Lambda!"); } */ Thread t2=new Thread(()->{ System.out.println("This is from an anonymous method (lambda exp).\n"); }); t2.start(); /** * 迭代LIST */ List<String> listStr=new ArrayList<>(); listStr.add("sss"); listStr.add("1111"); listStr.forEach(e->{ if(e.equals("sss")){ System.out.print(e); } }); }
以上所述是小編給大家介紹的Java 8 lambda初試,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java微信小程序醫(yī)院掛號(hào)系統(tǒng)
這篇文章主要介紹了基于Java微信小程序醫(yī)院掛號(hào)系統(tǒng),可以實(shí)現(xiàn)遠(yuǎn)程處理事務(wù),遠(yuǎn)程提交工作和隨時(shí)追蹤工作的狀態(tài),文中提供了解決思路和部分實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-03-03Java攔截器Interceptor實(shí)現(xiàn)原理及代碼示例
本文詳細(xì)講解了Java攔截器Interceptor實(shí)現(xiàn)原理及代碼示例,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12RestTemplate發(fā)送HTTP?GET請(qǐng)求使用方法詳解
這篇文章主要為大家介紹了關(guān)于RestTemplate發(fā)送HTTP?GET請(qǐng)求的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家<BR>33+多多進(jìn)步2022-03-03Springboot打包為Docker鏡像并部署的實(shí)現(xiàn)
這篇文章主要介紹了Springboot打包為Docker鏡像并部署的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Java8新特性O(shè)ptional類處理空值判斷回避空指針異常應(yīng)用
這篇文章主要介紹了Java8新特性O(shè)ptional類處理空值判斷回避空指針異常應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04SpringBoot集成分頁(yè)插件PageHelper的配置和使用過(guò)程
這篇文章主要介紹了SpringBoot集成分頁(yè)插件PageHelper的配置和使用過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04自定義JmsListenerContainerFactory時(shí),containerFactory字段解讀
這篇文章主要介紹了自定義JmsListenerContainerFactory時(shí),containerFactory字段解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Mybatis-Plus實(shí)體類繼承Model的使用小結(jié)
Mybatis-Plus實(shí)體類繼承Model的使用是Mybatis-Plus中的一個(gè)重要特性,它允許開(kāi)發(fā)者通過(guò)繼承Model類來(lái)快速實(shí)現(xiàn)一些通用的功能,本文主要介紹了Mybatis-Plus實(shí)體類繼承Model的使用小結(jié),感興趣的可以了解一下2024-07-07Java設(shè)計(jì)模式之單例模式簡(jiǎn)介
這篇文章主要介紹了Java設(shè)計(jì)模式之單例模式簡(jiǎn)介,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04