




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第吊打Java面試官之Lambda表達(dá)式StreamAPI目錄一、jdk8新特性簡介二、Lambda表達(dá)式簡單理解一下Lambda表達(dá)式Lambda表達(dá)式的使用三、函數(shù)式接口1.什么是函數(shù)式接口2.如何理解函數(shù)式接口3.Java內(nèi)置四大核心函數(shù)式接口四、方法引用與構(gòu)造器引用方法引用構(gòu)造器引用和數(shù)組引用五、StreamAPI1.StreamAPI的說明2.為什么要使用StreamAPI3.創(chuàng)建Stream的四種方式4.Stream的中間操作及其測試5.Stream的終止操作及其測試六、Optional類的使用Optional類的重要意義:
一、jdk8新特性簡介
二、Lambda表達(dá)式
簡單理解一下Lambda表達(dá)式
publicclassLambdaTest{
@Test
publicvoidtest1(){
Runnabler1=newRunnable(){
@Override
publicvoidrun(){
System.out.println("我愛北京天安門");
r1.run();
System.out.println("******************************************");
Runnabler2=()-System.out.println("我愛北京故宮");
r2.run();
@Test
publicvoidtest2(){
ComparatorIntegercom1=newComparatorInteger(){
@Override
publicintcompare(Integero1,Integero2){
returnIpare(o1,o2);
intcompare1=pare(12,21);
System.out.println(compare1);
System.out.println("**********************************");
//Lambda表達(dá)式的寫法
ComparatorIntegercom2=(o1,o2)-Ipare(o1,o2);
intcompare2=com2.compare(32,21);
System.out.println(compare2);
System.out.println("************************************");
//方法引用
ComparatorIntegercom3=Integer::compare;
intcompare3=pare(32,21);
System.out.println(compare2);
}
Lambda表達(dá)式的使用
1.舉例:(o1,o2)-Ipare(o1,o2);
2.格式:
-:lambda操作符或箭頭操作符
-:左邊:lambda形參列表(其實就是接口中的抽象方法的形參列表)
-:右邊:lambda體(其實就是重寫的抽象方法的方法體)
3.Lambda表達(dá)式的使用:(分為6種情況介紹)
總結(jié):(重點看這個)
-左邊:lambda形參列表的參數(shù)類型可以省略(類型推斷);如果lambda形參列表只有一個參數(shù),其一對()也可以省略
-右邊:lambda體應(yīng)該使用一對{}包裹;如果lambda體只有一條執(zhí)行語句(可能時return語句),可以省略這一對{}和return關(guān)鍵字
4.Lambda表達(dá)式的本質(zhì):作為函數(shù)式接口的實例
5.如果一個接口中,只聲明了一個抽象方法,則此接口就稱為函數(shù)式接口
publicclassLambdaTest1{
//語法格式一:無參,無返回值
@Test
publicvoidtest1(){
Runnabler1=newRunnable(){
@Override
publicvoidrun(){
System.out.println("我愛北京天安門");
r1.run();
System.out.println("******************************************");
Runnabler2=()-{
System.out.println("我愛北京故宮");
r2.run();
//語法格式二:Lambda需要一個參數(shù),但是沒有返回值。
@Test
publicvoidtest2(){
ConsumerStringcon=newConsumerString(){
@Override
publicvoidaccept(Strings){
System.out.println(s);
con.accept("謊言和誓言的區(qū)別什么?");
System.out.println("**********************************");
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一個是聽得人當(dāng)真了,一個是說的人當(dāng)真了");
//語法格式三:數(shù)據(jù)類型可以省略,因為可由編譯器推斷得出,稱為"類型推斷"
@Test
publicvoidtest3(){
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
System.out.println("****************************");
ConsumerStringcon2=(s)-{
System.out.println(s);
con2.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
@Test
publicvoidtest4(){
ArrayListStringobjects=newArrayList();//類型推斷(泛型)
int[]arr={1,2,3};//類型推斷(int[]arr=newint[]{1,2,3};)
//語法格式四:Lambda若只需要一個參數(shù)時,參數(shù)的小括號可以省略
@Test
publicvoidtest5(){
ConsumerStringcon1=(s)-{
System.out.println(s);
con1.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
System.out.println("****************************");
ConsumerStringcon2=s-{
System.out.println(s);
con2.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
//語法格式五:Lambda需要兩個或兩個以上的參數(shù),多條執(zhí)行語句,并且可以有返回值
@Test
publicvoidtest6(){
ComparatorIntegercom1=newComparatorInteger(){
@Override
publicintcompare(Integero1,Integero2){
System.out.println(o1);
System.out.println(o2);
returnIpare(o1,o2);
System.out.println(pare(12,21));
System.out.println("*******************************");
ComparatorIntegercom2=(o1,o2)-{
System.out.println(o1);
System.out.println(o2);
returnpareTo(o2);
System.out.println(pare(12,6));
//語法格式六:當(dāng)Lambda體只有一條語句時,return與大括號若有,都可以省略
@Test
publicvoidtest7(){
ComparatorIntegercom1=(o1,o2)-{
returnpareTo(o2);
System.out.println(pare(12,6));
System.out.println("******************************");
ComparatorIntegercom2=(o1,o2)-pareTo(o2);
System.out.println(pare(12,21));
@Test
publicvoidtest8(){
ConsumerStringcon1=s-{
System.out.println(s);
con1.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
System.out.println("*********************************");
ConsumerStringcon2=s-System.out.println(s);
con2.accept("一個是聽的人當(dāng)真了,一個是說的人當(dāng)真了");
}
三、函數(shù)式接口
1.什么是函數(shù)式接口
2.如何理解函數(shù)式接口
總結(jié):只有函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市家庭房屋拆遷合同6篇
- 裝修業(yè)客戶合同協(xié)議
- AI診斷系統(tǒng)優(yōu)化醫(yī)療服務(wù)流程的新趨勢
- 醫(yī)療行業(yè)跨機構(gòu)數(shù)據(jù)安全保護的策略研究
- 2025年司機年終工作總結(jié)模版
- AI技術(shù)在輔助藥物研發(fā)中的潛在作用和責(zé)任分析
- 醫(yī)療產(chǎn)品推廣的動畫效果運用
- 協(xié)會年會發(fā)言稿模版
- 關(guān)注社會公共衛(wèi)生安全定期執(zhí)行醫(yī)療保健及預(yù)防策略研究
- 醫(yī)療機構(gòu)管理中的信息透明度與隱私保護探討
- 2025森林消防考試試題及答案
- 武漢四調(diào)高中數(shù)學(xué)試卷及答案
- 液壓與氣壓傳動(第5版)課件:氣動控制閥及基本回路
- 2025年國家保安員試考試題庫(附答案)
- 2025年消費電子行業(yè)分析報告
- 大部分分校:地域文化形考任務(wù)三-國開(CQ)-國開期末復(fù)習(xí)資料
- 超星爾雅學(xué)習(xí)通《當(dāng)代大學(xué)生國家安全教育》章節(jié)測試答案
- 民用航空行業(yè)標(biāo)準(zhǔn)(PPT)
- 班組長績效考核表
- 畢業(yè)論文三相電壓型PWM整流器的研究
- 美國岡氏X光判讀之骨盆定位
評論
0/150
提交評論