在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

java 簡(jiǎn)潔代碼

大小:0.6 MB 人氣: 2017-09-27 需要積分:1

  函數(shù)式編程

  函數(shù)式編程將函數(shù)作為程序開(kāi)發(fā)人員的核心結(jié)構(gòu)。開(kāi)發(fā)人員可以以一種非常靈活的方式使用函數(shù),例如將其作為參數(shù)傳遞。利用Lambda表達(dá)式的這種能力,Java可以將函數(shù)作為方法的參數(shù),或者將代碼作為數(shù)據(jù)。Lambda表達(dá)式可以看作是一個(gè)與任何特定的類都無(wú)關(guān)的匿名方法。這些理念有著非常豐富多彩并且引人入勝的數(shù)學(xué)基礎(chǔ)。

  函數(shù)式編程和Lambda表達(dá)式仍然是比較抽象、深?yuàn)W的概念。對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),主要關(guān)注如何解決實(shí)際生產(chǎn)中的任務(wù),對(duì)于跟蹤最新的計(jì)算趨勢(shì)可能并不感興趣。隨著Lambda表達(dá)式在Java中的引入,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)對(duì)這些新特性的了解至少需要能夠達(dá)到可以讀懂其他開(kāi)發(fā)人員所編寫代碼的程度。這些新特性還能帶來(lái)實(shí)際的好處——可以影響并發(fā)系統(tǒng)的設(shè)計(jì),使其擁有更優(yōu)的性能。而本文所關(guān)心的是如何利用這些機(jī)制編寫簡(jiǎn)潔而又清晰的代碼。

  之所以能夠用Lambda表達(dá)式生成簡(jiǎn)潔的代碼,有如下幾個(gè)原因。局部變量的使用量減少,因此聲明和賦值的代碼也隨之減少。循環(huán)被方法調(diào)用所替代,從而將三行以上的代碼縮減為一行。本來(lái)在嵌套循環(huán)和條件語(yǔ)句中的代碼現(xiàn)在可以放置于一個(gè)單獨(dú)的方法中。實(shí)現(xiàn)連貫接口,可以將方法以類似于Unix管道的方式鏈接在一起。以函數(shù)式的風(fēng)格編寫代碼的凈效應(yīng)并不只限于可讀性。此類代碼可以避免狀態(tài)維護(hù)并且不會(huì)產(chǎn)生副作用。這種代碼還能夠產(chǎn)生易于并行化,提高處理效率的額外收益。

  Lambda表達(dá)式

  與Lambda表達(dá)式相關(guān)的語(yǔ)法比較簡(jiǎn)單直白,不過(guò)又有別于Java之前版本的習(xí)語(yǔ)。一個(gè)Lambda表達(dá)式由三部分組成,參數(shù)列表、箭頭和主體。參數(shù)列表可以包含也可以不包含括號(hào)。此外還新增了由雙冒號(hào)組成的相關(guān)操作符,可以進(jìn)一步縮減某些特定的Lambda表達(dá)式所需的代碼量。這又稱為方法引用。

  線程創(chuàng)建

  在這個(gè)示例中,將會(huì)創(chuàng)建并運(yùn)行一個(gè)線程。Lambda表達(dá)式出現(xiàn)在賦值操作符的右側(cè),指定了一個(gè)空的參數(shù)列表,以及當(dāng)線程運(yùn)行時(shí)寫到標(biāo)準(zhǔn)輸出的簡(jiǎn)單的消息輸出。

  Runnable r1= () -》 System .out.print( “Hi!”) ;r1.run()

  java 簡(jiǎn)潔代碼

  處理集合

  Lambda表達(dá)式的出現(xiàn)會(huì)被開(kāi)發(fā)人員注意到的首要位置之一就是與集合API相關(guān)。假設(shè)我們需要將一個(gè)字符串列表根據(jù)長(zhǎng)度排序。

  java .util.List《String》 l ;l= java .util.Arrays.asList(new String[]{ “aaa”, “b”, “cccc”, “DD”}) ;

  可以創(chuàng)建一個(gè)Lambda表達(dá)式實(shí)現(xiàn)此功能。

  java.util.Collections.sort (l, (s1, s2) -》 newInteger(s1.length())。 compareTo(s2.length())

  這個(gè)示例中包含兩個(gè)傳遞給Lambda表達(dá)式體的參數(shù),以比較這兩個(gè)參數(shù)的長(zhǎng)度。

  java 簡(jiǎn)潔代碼

  除此之外還有許多替代方案,在無(wú)需使用標(biāo)準(zhǔn)的“for”或“while”循環(huán)的前提下,就可以操作列表中的各個(gè)元素。通過(guò)向集合的“forEach”方法傳入Lambda表達(dá)式也可以完成用于比較的語(yǔ)義。這種情況下,只有一個(gè)參數(shù)傳入,也就無(wú)需使用括號(hào)。

  l .forEach(e -》 System .out.println(e)) ;

  java 簡(jiǎn)潔代碼

  這個(gè)特殊的示例還可以通過(guò)使用方法引用將包含類和靜態(tài)方法分開(kāi)的方式進(jìn)一步減少代碼量。每個(gè)元素都會(huì)按順序傳入println方法。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 最新亚洲情黄在线网站 | 播色屋 | 成人免费精品视频 | 午夜久久影院 | 亭亭色| 激情5月婷婷 | 亚洲国产精品乱码在线观看97 | 伊人网在线观看 | 热久久综合这里只有精品电影 | 久久青青草原精品老司机 | 18videosex欧美69| 亚洲video | 丁香婷婷啪啪 | 久久夜色精品国产飘飘 | 色鬼久久 | 色老头久久网 | 欧美一区二区三区激情啪啪 | 69xxxxx日本护士 | 成片一卡三卡四卡免费网站 | 免费一级特黄特色黄大任片 | 黄色片免费看视频 | 俺去操| 97爱sese| 青草青草视频2免费观看 | 婷婷亚洲综合 | 女人被两根一起进3p在线观看 | 男人的天堂视频网站清风阁 | 男男小说高h | 影视精品网站入口 | 免费国产成人午夜私人影视 | 成人欧美精品大91在线 | 中日韩精品视频在线观看 | 欧美午夜片| 色综合天天 | 狠狠夜夜| 稀缺资源呦视频在线网站 | 222在线视频免费观看 | 蝌蚪自拍网二区 | 香蕉视频国产在线观看 | 亚洲第一区视频 | 色综合国产 |