JDK8 新特性 快速理解

基礎(chǔ)語法

Lambda需要函數(shù)式接口支持? 接口用@Functiona1Interface修飾随橘,就是函數(shù)式接口

Lambda操作接口(函數(shù)式接口:一個接口 就一個抽象方法)

Java 8引入了新的操作符“->”

該操作符把lambda拆分成兩部分

左側(cè)對應(yīng)表達式的參數(shù)列表(接口所需要的參數(shù),參數(shù)類型不需要寫,jvm會根據(jù)上下文推斷,如jdk7后List list = new ArrayList<>();)

右側(cè)表達式中所需要實現(xiàn)的功能(接口的實現(xiàn))

語法格式一:無參數(shù),無返回值

? ? ? ? ?() -> System.out.println("Hello Lambda!");

語法格式二:有一個參數(shù),并且無返回值

? ? ? ? ? (x) -> System.out.println(x)

語法格式三:若只有一個參數(shù),小括號可以省略不寫

? ? ? ? ? ?x -> System.out.println(x)

語法格式四:有兩個以上的參數(shù)窑滞,有返回值,并且Lambda體中有多條語句

? ? ? ? ? Comparator com = (x, y) -> {

? ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("函數(shù)式接口");

? ? ? ? ? ? ? ? ? ?return Integer.compare(x, y);

? ? ? ? ? };

語法格式五:若Lambda體中只有一條語句,return和 大括號都可以省略不寫

? ? ? ? Comparator com = (x, y) -> Integer.compare(x, y);

語法格式六:Lambda表達式的參數(shù)列表的數(shù)據(jù)類型可以省略不寫葛假,因為JVM編譯器通過上下文推斷出障陶,數(shù)據(jù)類型,即“類型推斷”

? ? ? ?(Integer x, Integer y) -> Integer.compare(x, y);



JAVA8內(nèi)置四大核心函數(shù)式接口

1: Consumer消費型接口聊训;

Void ??accept(T t);

2: Supplier ?供給型接口

T ?????get();

3: Function ?函數(shù)式接口

R ?????apply(T t);

4 : Predicate(T)斷言型接口

Boolean test(T t);


核心函數(shù)只是體現(xiàn)接口抱究,實現(xiàn)自己所需要的功能,根據(jù)功能場景選擇函數(shù)接口带斑,

如需要返回值供給型(其他接口都是大同小異)



Lambda表達式引用

方法引用

a)若Lambda體中的功能鼓寺,已經(jīng)有方法提供了實現(xiàn),可以使用方法引用勋磕,可以將方法引用理解為Lambda表達式的另外一種表現(xiàn)形式)

對象的引用::實例方法名調(diào)用類的getName()

Supplier sup2 = emp::getName;

String name = sup2.get();

類名::靜態(tài)方法名




類名::實例方法名





①方法引用所引用的方法的參數(shù)列表與返回值類型妈候,需要與函數(shù)式接口中抽象方法的參數(shù)列表和返回值類型保持一致!

②若Lambda的參數(shù)列表的第一個參數(shù)挂滓,是實例方法的調(diào)用者苦银,第二個參數(shù)(或無參)是實例方法的參數(shù)時,格式:ClassName::MethodName


構(gòu)造器引用




構(gòu)造器的參數(shù)列表赶站,需要與函數(shù)式接口中參數(shù)列表保持一致幔虏!

數(shù)組引用類型[] :: new



強大的Stream API

Stream是一個抽象流的概念 ,生成流后通過中間操作數(shù)據(jù)源(集合贝椿,數(shù)組)產(chǎn)生一個新的元素序列想括。就像SQL一樣

Stream是延遲執(zhí)行 需要數(shù)據(jù)才執(zhí)行,執(zhí)行效率非常非常高烙博。高效

獲取Stream



中間操作

對流進進行一些列操作瑟蜈,得到自己想要的流數(shù)據(jù),像SQL對數(shù)據(jù)進行 過濾 求和

得到想要的數(shù)據(jù)中間操作都返回流



數(shù)據(jù)源


映射map flatMap



map——接收Lambda渣窜, 將元素轉(zhuǎn)換成其他形式或提取信息铺根。接收一個函數(shù)作為參數(shù),該函數(shù)會被應(yīng)用到每個元素上图毕,并將其映射成一個新的元素夷都。



flatMap——接收一個函數(shù)作為參數(shù)眷唉,將流中的每個值都換成另一個流予颤,然后把所有流連接成一個流

排序


sorted(Comparator com)——定制排序 ? ? ? ? ? sorted()——自然排序(Comparable)


終止操作

當執(zhí)行終止操作,中間操作會一次性執(zhí)行冬阳,沒有執(zhí)行終止操作蛤虐,中間操作就是個擺設(shè)


數(shù)據(jù)源




歸約reduce


reduce——可以將流中元素反復(fù)結(jié)合起來,得到一個值肝陪。



經(jīng)典操作map-reduce模式

最常用操作collect

collect——將流轉(zhuǎn)換為其他形式驳庭。接收一個Collector接口的實現(xiàn),用于給Stream中元素做匯總的方法





分組groupingBy

分區(qū)partitioningBy



Optional容器類

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饲常,隨后出現(xiàn)的幾起案子蹲堂,更是在濱河造成了極大的恐慌,老刑警劉巖贝淤,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柒竞,死亡現(xiàn)場離奇詭異,居然都是意外死亡播聪,警方通過查閱死者的電腦和手機朽基,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來离陶,“玉大人稼虎,你說我怎么就攤上這事≌信伲” “怎么了霎俩?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沉眶。 經(jīng)常有香客問我茸苇,道長,這世上最難降的妖魔是什么沦寂? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任学密,我火速辦了婚禮,結(jié)果婚禮上传藏,老公的妹妹穿的比我還像新娘腻暮。我一直安慰自己,他們只是感情好毯侦,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布哭靖。 她就那樣靜靜地躺著,像睡著了一般侈离。 火紅的嫁衣襯著肌膚如雪试幽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天卦碾,我揣著相機與錄音铺坞,去河邊找鬼。 笑死洲胖,一個胖子當著我的面吹牛济榨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绿映,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼矛双,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了较屿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤藻糖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后库车,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颖御,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年凝颇,在試婚紗的時候發(fā)現(xiàn)自己被綠了潘拱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拧略,死狀恐怖芦岂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垫蛆,我是刑警寧澤禽最,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站袱饭,受9級特大地震影響川无,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虑乖,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一懦趋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疹味,春花似錦仅叫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洪灯,卻和暖如春坎缭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背签钩。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工掏呼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人边臼。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓哄尔,卻偏偏與公主長得像假消,于是被迫代替她去往敵國和親柠并。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容