2022-12-29
lambda 集合 表達式 語句
Lambda表達式是JDK8的一個新特性,Lambda可以取代大部分的匿名內(nèi)部類,寫出更優(yōu)雅的Java代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu)。JDK也提供了大量的內(nèi)置函數(shù)式接口供我們使用,使得Lambda表達式的運用更加方便、高效。
Lambda表達式由參數(shù)列表、箭頭符號->和函數(shù)體組成。函數(shù)體既可以是一個表達式,也可以是一個語句塊。其中表達式會被執(zhí)行,然后返回執(zhí)行結(jié)果;語句塊中的語句會被依次執(zhí)行,就像方法中的語句一樣。
Lambda表達式常用的語法格式如下表。
接下來通過一個案例來學習Lambda表達式語法。
import java.util.Arrays;
public class Example28 {
public static void main(String[] args) {
String[] arr = {"program", "creek", "is", "a", "java", "site"};
Arrays.sort(arr, (m, n) -> Integer.compare(m.length(), n.length()));
System.out.println("Lambda語句體中只有一條語句,參數(shù)類型可推斷:" + Arrays.toString(arr));
Arrays.sort(arr, (String m, String n) -> {
if (m.length() > n.length())
return -1;
else
return 0;
});
System.out.println("Lambda語句體中有多條語句:" + Arrays.toString(arr));
}
}
上述代碼中,定義了一個字符串數(shù)組arr,使用了兩種Lambda表達式語法對字符串數(shù)組arr進行了排序。其中,第一種是用compare()方法比較字符串的長度來進行排序;第二種是使用if…else語法比較字符串的長度來進行排序。
8 本章小節(jié)
本章詳細介紹了幾種Java常用集合類,首先介紹了集合的概念和Collection接口;其次介紹了List接口,包括ArrayList、LinkedList、Iterator和foreach循環(huán);接著介紹了Set接口,包HashSet集合和TreeSet集合;然后Map接口,包括HashMap和TreeMap;最后介紹了泛型,包括泛型類、泛型對象、泛型接口和類型通配符。
最后還介紹了JDK8的一個新特性——Lambda表達式。通過本章的學習,讀者可以熟練掌握各種集合類的使用場景,以及需要注意的細節(jié),同時可以掌握泛型與Lambda表達式的使用。
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網(wǎng)安備 11010802035720號