天天看點

JDK8 特性 持續更新1、Lambda表達式【jdk8核心特性】2、Stream3、日期時間4、Join() 字元串拼接

JDK8 特性 持續更新

  • 1、Lambda表達式【jdk8核心特性】
  • 2、Stream
  • 3、日期時間
  • 4、Join() 字元串拼接

1、Lambda表達式【jdk8核心特性】

介紹:

Lambda 表達式,也可稱為閉包,它是推動 java 8 釋出的最重要新特性。
Lambda 允許把函數作為一個方法的參數(函數作為參數傳遞進方法中)。
使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。
           

文法:

(parameters) -> expression
或
(parameters) ->{ statements; }
           

重要特征:

特性 說明 案例
可選類型聲明 不需要聲明參數類型,編譯器可以統一識别參數值。 x -> 2 * x
可選的參數圓括号 一個參數無需定義圓括号,但多個參數需要定義圓括号。 x -> 2 * x
可選的大括号 如果主體包含了一個語句,就不需要使用大括号。 (x, y) -> x – y
可選的傳回關鍵字 如果主體隻有一個表達式傳回值則編譯器會自動傳回值,大括号需要指定明表達式傳回了一個數值。 (String s) -> System.out.print(s)

Lambda 表達式案例解釋說明:

// 1. 不需要參數,傳回值為 5  
 () -> 5 
  
// 2. 接收一個參數(數字類型),傳回其2倍的值  
x -> 2 * x  
  
// 3. 接受2個參數(數字),并傳回他們的內插補點  
(x, y) -> x – y  
  
// 4. 接收2個int型整數,傳回他們的和  
(int x, int y) -> x + y  
  
// 5. 接受一個 string 對象,并在控制台列印,不傳回任何值(看起來像是傳回void)  
(String s) -> System.out.print(s) 
           

2、Stream

函數:

函數名 解釋
.foreach() 周遊循環
.collect(Collectors) 轉換為其他形式

【2.1】

,例如:list.stream().collect(Collectors.toList());
.filter(

Lambda表達式

)
篩選,過濾特定資料
.sorted() 排序,預設升序、sorted(Comparator.comparing(對象::屬性))降序
.map(Function f)) 接收流中元素,并且将其映射成為新元素,例如:使用前【admin,zs,ww】list.Stream.map(e -> e.getName() + “531”) 使用後: 【admin531,zs531,ww531】
.limit(long n) 斷截流,取前n個元素
.count 傳回總數
.mapToDouble(對象::屬性) 将對象中的某一個屬性轉為Double類型
.sum() 求和

`2.1 Collectors配套方法:

函數名 解釋
.toListA() 将流轉為List集合
.toSet() 将流轉為Set集合
.toMap() 将流轉為Map集合
.groupingBy(對象::屬性) 根據對象中的某個資料分組

3、日期時間

java.time包

apl 解釋
Local(本地) 簡化了日期時間的處理,沒有時區的問題。LocalDateTime currentTime = LocalDateTime.now();
Zoned(時區) 通過制定的時區處理日期時間。

4、Join() 字元串拼接

String.Join(‘分割符’,數組)

意為指定拼接數組字元的連接配接符号

//案例:
List<Object> list = new ArrList<Object>();
list.add("zs");
list.add("ls");
list.add("ww");
String join = String.Join('-',list)
System.out.println(join);
//結果:zs-ls-ww