1. 程式人生 > >Java8常用新特性實踐

Java8常用新特性實踐

arr 明顯 tro 設計 特性 nbsp imp image show

前言:

  時下Oracle開速叠代的Java社區以即將推出Java10,但尷尬的是不少小中企業仍使用JDK7甚至JDK6開發。

技術分享圖片

  從上面列出的JDK8特性中我們可以發現Java8的部分特性很明顯的是從Scala借鑒過來,其設計目的只要是為了讓代碼更精簡同時使代碼可讀性更高。本人在實際項目中比較常用的是3個新特性

1) forEach()

2) stream()

3) Interface動態創建

以下demo已經過本人親測,現提供給有需要的朋友!

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors; /** * Java8常用新特性測試 * @author John * @date 2018-04-14 21:54 * */ public class Java8NewFeature { public static void main(String[] args) { System.out.println("*** forEach()新特性 ***"); showForeach(); System.out.println("*** stream()新特性 ***"); showStream(); System.out.println(
"*** Interface動態創建新特性 ***"); showEasyInterface(); } public static void showForeach() { Integer numbers[] = { 1, 33, 5 }; List<Integer> numbersList = Arrays.asList(numbers); numbersList.forEach(System.out::println); } public static void showStream() { Integer numbers[]
= { 1, 33, 5, 100, 2 }; List<Integer> numbersList = Arrays.asList(numbers); List<String> newNumbers = numbersList.stream() .filter(num -> (num % 2 == 1)).map(num -> "" + num) .collect(Collectors.toList()); newNumbers.forEach(System.out::println); int sum = numbersList.stream().reduce((a, b) -> (a + b)).get(); System.out.println("sum = " + sum); } public static void showEasyInterface() { Integer numbers[] = { 1, 33, 5 }; List<Integer> numbersList = Arrays.asList(numbers); Collections.sort(numbersList, (a, b) -> (b - a)); numbersList.forEach(System.out::println); // JDK7實現自定義排序 // Collections.sort(numbersList,new Comparator<Integer>() { // // @Override // public int compare(Integer o1, Integer o2) { // // TODO Auto-generated method stub // return o2 - o1; // } // // }); } }

== 測試輸出結果 ==

*** forEach()新特性 ***
1
33
5
*** stream()新特性 ***
1
33
5
sum = 141
*** Interface動態創建新特性 ***
1
5
33

Java8常用新特性實踐