女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來(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ù)作為程序開發(fā)人員的核心結(jié)構(gòu)。開發(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ì)于開發(fā)人員來(lái)說,主要關(guān)注如何解決實(shí)際生產(chǎn)中的任務(wù),對(duì)于跟蹤最新的計(jì)算趨勢(shì)可能并不感興趣。隨著Lambda表達(dá)式在Java中的引入,對(duì)于開發(fā)人員來(lái)說對(duì)這些新特性的了解至少需要能夠達(dá)到可以讀懂其他開發(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)單直白,不過又有別于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ì)被開發(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è)元素。通過向集合的“forEach”方法傳入Lambda表達(dá)式也可以完成用于比較的語(yǔ)義。這種情況下,只有一個(gè)參數(shù)傳入,也就無(wú)需使用括號(hào)。

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

  java 簡(jiǎn)潔代碼

  這個(gè)特殊的示例還可以通過使用方法引用將包含類和靜態(tà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ī)定!

      ?