一、Lambda表達式
Java8新增Lambda表達式,可以大大簡化代碼,使代碼更加易讀、易維護。Lambda表達式是一種匿名函數,可以將函數作為參數傳遞給其他方法。以下是一個簡單的示例:
List<String> list = new ArrayList<>(); list.add("John"); list.add("Doe"); list.add("Jane"); list.add("Doe"); //使用Lambda表達式過濾List List<String> filteredList = list.stream().filter(s -> s.startsWith("J")).collect(Collectors.toList()); //打印輸出結果 System.out.println(filteredList);
以上代碼將會輸出過濾後的List:
[John, Jane]
代碼說明:
- 創建一個List並添加一些字符串;
- 使用Lambda表達式過濾List;
- 使用collect方法將過濾後的元素收集到一個新的List中;
- 打印輸出結果。
二、Stream API
Java8新增Stream API,可以輕鬆地操作集合和數組。Stream API提供了一系列非常有用的操作,如過濾、排序、去重、映射等等。以下是一個示例:
int[] numbers = {2, 5, 7, 1, 9, 8}; //使用Stream API求和 int sum = Arrays.stream(numbers).sum(); //打印輸出結果 System.out.println(sum);
以上代碼將會輸出數字數組的和:
32
代碼說明:
- 創建一個數字數組;
- 使用Arrays.stream方法將數字數組轉換成IntStream;
- 使用sum方法求和;
- 打印輸出結果。
三、接口默認方法
Java8新增接口默認方法,可以在接口中提供默認的實現。這是一種非常有用的功能,因為它可以在不破壞現有代碼的情況下,向現有接口添加新的方法。以下是一個示例:
interface Person { void sayHello(); default void sayBye() { System.out.println("Bye!"); } } //實現Person接口 class Student implements Person { public void sayHello() { System.out.println("Hello!"); } } //使用Student類 Person p = new Student(); p.sayHello(); //輸出Hello! p.sayBye(); //輸出Bye!
以上代碼定義了一個Person接口和一個實現了該接口的Student類。Person接口中定義了一個抽象的sayHello方法和一個默認的sayBye方法。創建一個Student對象後,可以調用sayHello和sayBye方法。如果不重寫sayBye方法,那麼默認的實現將會被使用。
四、函數式接口
函數式接口是指只包含一個抽象方法的接口。Java8引入了新註解@FunctionalInterface來標註函數式接口,以便編譯器進行檢查。以下是一個示例:
@FunctionalInterface interface Calculator { int calculate(int a, int b); } //使用Lambda表達式創建Calculator對象 Calculator add = (a, b) -> a + b; //計算兩個數字相加 int result = add.calculate(10, 5); //15 //打印輸出結果 System.out.println(result);
以上代碼定義了一個Calculator接口,並使用Lambda表達式創建了Calculator對象。Calculator接口中只包含一個抽象方法calculate。使用Calculator對象,可以計算兩個數字相加。Lambda表達式可以用來代替匿名內部類,從而使代碼更加簡潔。
五、日期時間API
Java8新增了全新的日期時間API,可以更方便地處理日期和時間。以下是一個示例:
LocalDate date = LocalDate.now(); //使用格式化字符串輸出日期 String formattedDate = date.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); //打印輸出結果 System.out.println(formattedDate); //例如:2022/01/01
以上代碼使用LocalDate類獲取當前日期,並使用DateTimeFormatter類格式化輸出日期。可以使用不同的格式化字符串來輸出不同格式的日期。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/198692.html