更新時間:2022-07-27 11:02:44 來源:動力節(jié)點 瀏覽1037次
動力節(jié)點小編來為大家介紹一下泛型算法與Lambda表達式。
Java泛型的語法定義:
class 類名 <泛型標識,泛型標識,…>{ private 泛型標識1,變量名;常用的泛型標識:T,E,K,V } 里面正常寫法
public class GenericDemo<K> {
//定義數(shù)組
private K[] arr;
}
泛型的使用語法:
類名<具體的數(shù)據(jù)> 對象名 = new 類名<具體的數(shù)據(jù)類型>()
jdk1.7之后,后邊的<>可以省略不寫
類名<具體的數(shù)據(jù)> 對象名 = new 類名<>()
泛型總結(jié):
類型參數(shù)化,讓類的定義更加通用
泛型不支持基本類型,因為在編譯時,基本類型無法轉(zhuǎn)換成Object
泛型類在創(chuàng)建對象的時候,如果沒有指定數(shù)據(jù)類型,將按照Object類型來操作
同一泛型類在邏輯上可以看成是多個不同的類型,但實際是相同的類型
從泛型類派生子類:
子類也是泛型,子類和父類的泛型要一致 (例如:連泛型的類型T要一致,寫的內(nèi)容相同),
如果父類沒有指明類型,則父類要按照Object類型處理
public class Child<T> extends Parent<T> {
}
子類不是泛型,父類要明確泛型類型,
如果父類沒有指明類型,則父類要按照Object類型處理
泛型接口:
泛型接口的語法定義:interface 接口名<泛型標識1,泛型標識2,…>{ 泛型標識 方法名(); … }
實現(xiàn)類也是泛型,實現(xiàn)類和接口的泛型要一致,如果接口沒有指明類型,則接口要按照Object類型處理
實現(xiàn)類不是泛型,接口要明確泛型接口的數(shù)據(jù)類型,如果接口沒有指明類型,則接口按照Object類型處理
lambda表達式概念
面向?qū)ο蟮木幊讨袕娬{(diào),必須通過對象的形式去做事情;函數(shù)思想則是盡量忽略對象的復(fù)雜寫法,“強調(diào)做什么,而不是以什么形式去做”
lambda表達式就是函數(shù)思想的體現(xiàn)
lambda表達式就是定義函數(shù)式的簡化寫法,而不是函數(shù)調(diào)用的簡化寫法
lambda表達式格式
三要素:形式參數(shù),箭頭,代碼塊
形如:(形參)->代碼塊
形參如果多個參數(shù),參數(shù)之間逗號隔開,如果沒有參數(shù),留空括號,不用留空格
-> 一定的是英文,固定寫法,表示執(zhí)行
代碼塊:具體要做的事情
使用前提:使用接口:接口當中有且只有一個抽象方法
代碼示例:
package com.lambda;
public class Lambda {
public static void main(String[] args) {
//正常寫法
Mythread mythread = new Mythread();
Thread t = new Thread(mythread);
t.start();
//匿名內(nèi)部類
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("多線程1就緒了");
}
}).start();
//lambda表達式:創(chuàng)建線程
new Thread(()->{
System.out.println("多線程2就緒了");
}).start();
}
}
class Mythread implements Runnable{
@Override
public void run() {
System.out.println("多線程就緒");
}
}
以上就是關(guān)于“泛型算法與Lambda表達式”的介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),相信對大家一定會有所幫助的。