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函數程式設計
- 重識Java8函數語言程式設計Java函數程式設計
- Java8 新特性 —— 函數語言程式設計Java函數程式設計
- Java 函數語言程式設計Java函數程式設計
- 隨便聊聊 Java 8 的函數語言程式設計Java函數程式設計
- DDD的函數語言程式設計實現函數程式設計
- Java Stream函數語言程式設計案例圖文詳解Java函數程式設計
- 《Java8函數語言程式設計》讀書筆記---常用的流操作Java函數程式設計筆記
- 快速掌握Java8 Stream函數語言程式設計技巧Java函數程式設計
- java8函數語言程式設計筆記-科裡化Java函數程式設計筆記
- java8函數語言程式設計筆記-延遲性Java函數程式設計筆記
- 函數語言程式設計函數程式設計
- 函數語言程式設計最佳實踐函數程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- Java 函數語言程式設計(三)流(Stream)Java函數程式設計
- Java 函數語言程式設計的前生今世Java函數程式設計
- Java函數語言程式設計知識分享!Java函數程式設計
- 《Java8函數語言程式設計》讀書筆記---類庫Java函數程式設計筆記
- 函數語言程式設計,真香函數程式設計
- python函數語言程式設計Python函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- Java 函數語言程式設計(一)初識篇Java函數程式設計
- Java 函數語言程式設計(二)Lambda表示式Java函數程式設計
- 淺談函數語言程式設計與 Java Stream函數程式設計Java
- Java技術分享之函數語言程式設計!Java函數程式設計
- Java技術分享之函數語言程式設計Java函數程式設計
- 《Java8函數語言程式設計》讀書筆記---收集器Java函數程式設計筆記
- 幽默圖:升級到Java 8使用函數語言程式設計以後Java函數程式設計
- 簡化stream流等工具類(函數語言程式設計的應用案例)函數程式設計
- Java中的函數語言程式設計(七)流Stream的Map-Reduce操作Java函數程式設計
- 函數語言程式設計入門實踐(一)函數程式設計
- JDK 8 新特性之函數語言程式設計 → Stream APIJDK函數程式設計API
- python函數語言程式設計一Python函數程式設計
- python函數語言程式設計二Python函數程式設計
- RAC的函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計(一)JavaScript函數程式設計
- JavaScript 函數語言程式設計(三)JavaScript函數程式設計