Java 8用函數語言程式設計實現集合操作案例
for和while是傳統Java用於遍歷集合的經典方法,本文程式碼演示如何使用Java8函式式lambda替代這兩條語句。
假設對集合進行篩選後排序,傳統程式碼如下:
這裡是將Car日期在2000年以後的篩選出來放到carsSortedByYear這個臨時集合,再根據日期排序,再轉為一個新的models集合,完成整個過程需要兩個臨時集合做轉換。
而使用Java 8的管道組合則簡單一句:
假設對集合進行篩選後排序,傳統程式碼如下:
public static List<String> getModelsAfter2000UsingFor(List<Car> cars) { List<Car> carsSortedByYear = new ArrayList<>(); for(Car car : cars) { if(car.getYear() > 2000) { carsSortedByYear.add(car); } } Collections.sort(carsSortedByYear, new Comparator<Car>() { public int compare(Car car1, Car car2) { return new Integer(car1.getYear()).compareTo(car2.getYear()); } }); List<String> models = new ArrayList<>(); for(Car car : carsSortedByYear) { models.add(car.getModel()); } return models; } <p class="indent"> |
這裡是將Car日期在2000年以後的篩選出來放到carsSortedByYear這個臨時集合,再根據日期排序,再轉為一個新的models集合,完成整個過程需要兩個臨時集合做轉換。
而使用Java 8的管道組合則簡單一句:
public static List<String> getModelsAfter2000UsingPipeline( List<Car> cars) { return cars.stream() .filter(car -> car.getYear() > 2000) .sorted(Comparator.comparing(Car::getYear)) .map(Car::getModel) .collect(toList()); } <p class="indent"> |
相關文章
- Java8函數語言程式設計應用Java函數程式設計
- Java8的函數語言程式設計Java函數程式設計
- 《Java 8函數語言程式設計》選讀:為什麼要給Java 8中加入函數語言程式設計?Java函數程式設計
- 重識Java8函數語言程式設計Java函數程式設計
- Java8 新特性 —— 函數語言程式設計Java函數程式設計
- 書推薦《Java 8函數語言程式設計》Java函數程式設計
- 淺談Java 8的函數語言程式設計Java函數程式設計
- Java 函數語言程式設計Java函數程式設計
- 隨便聊聊 Java 8 的函數語言程式設計Java函數程式設計
- 使用 Java 8 函數語言程式設計生成字母序列Java函數程式設計
- DDD的函數語言程式設計實現函數程式設計
- Java Stream函數語言程式設計案例圖文詳解Java函數程式設計
- 《Java8函數語言程式設計》讀書筆記---常用的流操作Java函數程式設計筆記
- 快速掌握Java8 Stream函數語言程式設計技巧Java函數程式設計
- 函數語言程式設計實用介紹(下)函數程式設計
- 函數語言程式設計實用介紹(上)函數程式設計
- 使用JavaScript實現“真·函數語言程式設計”JavaScript函數程式設計
- C#函數語言程式設計思想及案例C#函數程式設計
- java8函數語言程式設計筆記-科裡化Java函數程式設計筆記
- java8函數語言程式設計筆記-延遲性Java函數程式設計筆記
- 函數語言程式設計 - 實現響應式框架函數程式設計框架
- JavaScript 函數語言程式設計中的 curry 實現JavaScript函數程式設計
- JavaScript 函數語言程式設計中 compose 實現JavaScript函數程式設計
- 使用JavaScript實現“真·函數語言程式設計”-2JavaScript函數程式設計
- 函數語言程式設計函數程式設計
- 函數語言程式設計最佳實踐函數程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- Java 函數語言程式設計的前生今世Java函數程式設計
- Java 函數語言程式設計(三)流(Stream)Java函數程式設計
- Java函數語言程式設計知識分享!Java函數程式設計
- 《Java8函數語言程式設計》讀書筆記---類庫Java函數程式設計筆記
- 函數語言程式設計,真香函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- 初探函數語言程式設計函數程式設計
- 函數語言程式設計初探函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- Java技術分享之函數語言程式設計!Java函數程式設計
- Java技術分享之函數語言程式設計Java函數程式設計