Java8 新特性

Java8里面主要包含了函數(shù)式編程。本文代碼地址.

目錄結(jié)構(gòu):

第一個大類是Function:

A. Predicate是返回boolean類型Function,執(zhí)行的是test。

B. Function是R apply(T t);主要用于返回結(jié)果。

C. Consumer是主要用于執(zhí)行的,void accept(T t);通常用于執(zhí)行異步方法。

D. 除去前面所有的傳入一個參數(shù),還有可以傳入兩個參數(shù)的,用法與之前的相同。

第二大類是接口:

A Java8的接口可以有默認的實現(xiàn)方法

B.可以傳入方法

C.接口之間的繼承行為

D.lambda中的變量應(yīng)該是final的,而不是隨意更改的

E.使用lambda分別實踐了Comparable和Comparator

Comparable通過改造元素本身來實現(xiàn)排序,Comparator通過編寫排序規(guī)則來實現(xiàn)排序

第三大類:stream

Stream是可以多線程,并發(fā)執(zhí)行的。

Stream可以對元素進行分組。

Java8通過新增Optional實現(xiàn)對空指針的處理。

Stream可以Partitioning,的意思就是可以按照要求給元素分組。

求和。

第一個大類是Function:

A. Predicate是返回boolean類型Function,執(zhí)行的是test,用法有以下幾種:

Predicate

a. Predicate bonusLambdas = (emp)->emp.getRating()>10?true:false;

b. Predicate execLambdas = (emp)->emp.getName().startsWith("ad")?true:false;

Predicate andLambdas = bonusLambdas.and(execLambdas);

c. Predicate isEqualsLambdas = Predicate.isEqual(new Employee(7,"admins"));

d. employeeList.stream().filter(isEqualsLambdas).collect(Collectors.toList()).forEach(item ->{

System.out.println("isEqualsLambdas: "+item.getRating()+" "+item.getName());

});

e. 自帶的幾個函數(shù):or,and,isEqual,negate

B. Function是R apply(T t);主要用于返回結(jié)果,用法有以下幾種:

Function

a. Funciton getMovie = s ->new Movie(s);

private Movie testMovie(String movie){

return getMovie.apply(movie);

}

b.stream中的map就是用Function: Stream map(Function mapper);

? 并對flatmap學(xué)習(xí).

c. Funtion是可以并運算的,andthen先執(zhí)行前者,后執(zhí)行后者。compose是先執(zhí)行后者,再執(zhí)行前者。

d. Function有個Identify的效果跟原來的一樣。

b.flatmap
c.andThen,compose
d.Identify

C. Consumer是主要用于執(zhí)行的,void accept(T t);通常用于執(zhí)行異步方法。

Consumer

D. 除去前面所有的傳入一個參數(shù),還有可以傳入兩個參數(shù)的,用法與之前的相同。

BiPredicate
D

第二大類是接口:

A Java8的接口可以有默認的實現(xiàn)方法

主要解決的是一個封裝問題,對于確定性的步驟,我們可以封裝成一個默認的實現(xiàn)。

isExec

B.可以傳入方法

Input functioninterface

C.接口之間的繼承行為

子類可以訪問父類的默認實現(xiàn)方法,當(dāng)有多個父類的方法相同可以使用super區(qū)分

Inherit

D.lambda中的變量應(yīng)該是final的,而不是隨意更改的

Final

E.使用lambda分別實踐了Comparable和Comparator

Comparable通過改造元素本身來實現(xiàn)排序,Comparator通過編寫排序規(guī)則來實現(xiàn)排序

Comparator

第三大類:stream

Stream是可以多線程,并發(fā)執(zhí)行的,通過ForkJoinTask原理:https://blog.csdn.net/u013898617/article/details/79146389

Stream

Stream可以對元素進行分組:

Grouping

Java8通過新增Optional實現(xiàn)對空指針的處理:

Optional

Stream可以Partitioning,的意思就是可以按照要求給元素分組:

Partitioning

求和:

Sum
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • java8新特性 原創(chuàng)者:文思 一、特性簡介 速度更快 代碼更少,增加了Lambda 強大的Stream API ...
    文思li閱讀 3,098評論 1 1
  • 1 函數(shù)式接口和lambda表達式 函數(shù)式接口函數(shù)式接口就是有且只有一個抽象方法的接口,需要注意的是,如果方法覆蓋...
    曾豬666閱讀 1,432評論 0 0
  • 本文轉(zhuǎn)載自:[https://www.cnblogs.com/shenlanzhizun/p/6027042.ht...
    我是少年520閱讀 650評論 0 1
  • 一、Lambda表達式 Lambda表達式引入了一個新的操作符" -> "。Lambda表達式將函數(shù)當(dāng)成參數(shù)傳遞給...
    逝去丶淺秋閱讀 635評論 0 1
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)、焦點、注意力、語言聯(lián)想、情景聯(lián)想 觀點: 1.統(tǒng)計學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會...
    Jenaral閱讀 5,952評論 0 5

友情鏈接更多精彩內(nèi)容