




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第吊打Java面試官之Lambda表達式StreamAPI目錄一、jdk8新特性簡介二、Lambda表達式簡單理解一下Lambda表達式Lambda表達式的使用三、函數式接口1.什么是函數式接口2.如何理解函數式接口3.Java內置四大核心函數式接口四、方法引用與構造器引用方法引用構造器引用和數組引用五、StreamAPI1.StreamAPI的說明2.為什么要使用StreamAPI3.創建Stream的四種方式4.Stream的中間操作及其測試5.Stream的終止操作及其測試六、Optional類的使用Optional類的重要意義:
一、jdk8新特性簡介
二、Lambda表達式
簡單理解一下Lambda表達式
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表達式的寫法
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表達式的使用
1.舉例:(o1,o2)-Ipare(o1,o2);
2.格式:
-:lambda操作符或箭頭操作符
-:左邊:lambda形參列表(其實就是接口中的抽象方法的形參列表)
-:右邊:lambda體(其實就是重寫的抽象方法的方法體)
3.Lambda表達式的使用:(分為6種情況介紹)
總結:(重點看這個)
-左邊:lambda形參列表的參數類型可以省略(類型推斷);如果lambda形參列表只有一個參數,其一對()也可以省略
-右邊:lambda體應該使用一對{}包裹;如果lambda體只有一條執行語句(可能時return語句),可以省略這一對{}和return關鍵字
4.Lambda表達式的本質:作為函數式接口的實例
5.如果一個接口中,只聲明了一個抽象方法,則此接口就稱為函數式接口
publicclassLambdaTest1{
//語法格式一:無參,無返回值
@Test
publicvoidtest1(){
Runnabler1=newRunnable(){
@Override
publicvoidrun(){
System.out.println("我愛北京天安門");
r1.run();
System.out.println("******************************************");
Runnabler2=()-{
System.out.println("我愛北京故宮");
r2.run();
//語法格式二:Lambda需要一個參數,但是沒有返回值。
@Test
publicvoidtest2(){
ConsumerStringcon=newConsumerString(){
@Override
publicvoidaccept(Strings){
System.out.println(s);
con.accept("謊言和誓言的區別什么?");
System.out.println("**********************************");
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一個是聽得人當真了,一個是說的人當真了");
//語法格式三:數據類型可以省略,因為可由編譯器推斷得出,稱為"類型推斷"
@Test
publicvoidtest3(){
ConsumerStringcon1=(Strings)-{
System.out.println(s);
con1.accept("一個是聽的人當真了,一個是說的人當真了");
System.out.println("****************************");
ConsumerStringcon2=(s)-{
System.out.println(s);
con2.accept("一個是聽的人當真了,一個是說的人當真了");
@Test
publicvoidtest4(){
ArrayListStringobjects=newArrayList();//類型推斷(泛型)
int[]arr={1,2,3};//類型推斷(int[]arr=newint[]{1,2,3};)
//語法格式四:Lambda若只需要一個參數時,參數的小括號可以省略
@Test
publicvoidtest5(){
ConsumerStringcon1=(s)-{
System.out.println(s);
con1.accept("一個是聽的人當真了,一個是說的人當真了");
System.out.println("****************************");
ConsumerStringcon2=s-{
System.out.println(s);
con2.accept("一個是聽的人當真了,一個是說的人當真了");
//語法格式五:Lambda需要兩個或兩個以上的參數,多條執行語句,并且可以有返回值
@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));
//語法格式六:當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("一個是聽的人當真了,一個是說的人當真了");
System.out.println("*********************************");
ConsumerStringcon2=s-System.out.println(s);
con2.accept("一個是聽的人當真了,一個是說的人當真了");
}
三、函數式接口
1.什么是函數式接口
2.如何理解函數式接口
總結:只有函數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山林合同協議書
- 北京暖氣合同協議書
- 紅糖供貨合同協議書
- 紡織行業的可持續發展政策考題試題及答案
- 自動售藥機合同協議書
- 戶外設備維修合同協議書
- 作廢合同協議書范本
- 用地協議書合同
- 合同協議書風險與責任
- 合同協議書合同份數
- 校團委辦公室干事競選演講稿
- DB32T3562-2019橋梁結構健康監測系統設計規范
- 2024年四川省綿陽市八年級下冊物理期末經典試題含解析
- 當事人銀行結算賬戶確認書模板
- 導地線壓接培訓課件
- 酒店工傷預防知識培訓課件
- 計算機網絡故障的診斷與解決方法
- 全媒體運營師-國家職業標準(2023年版)
- 數字信號處理名校考研真題詳解
- 中小學生心理健康診斷測驗 MHT(附測試量表及評分細則)
- GLB-2防孤島保護裝置試驗報告
評論
0/150
提交評論