首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 8 Stream 從 List 物件提取屬性組成新 List

     編輯:程式設計疑難解答

給定一個 List<A>,其中 A 類別包含 id 與 name 欄位,需將所有元素的 id 提取並組成 List<Integer>,不需過濾。

最簡潔寫法

List<A> list = new ArrayList<>();
// ... 填充資料
List<Integer> ids = list.stream()
                         .map(A::getId)
                         .collect(Collectors.toList());

關鍵說明

  • stream():將集合轉為流。
  • map(A::getId):使用方法引用,等同 a -> a.getId(),程式碼更優雅。
  • collect(Collectors.toList()):將流收集為 List。

替代寫法

List<Integer> ids = list.stream()
                         .map(a -> a.getId())
                         .collect(Collectors.toList());

兩種寫法效能相同,方法引用更符合函數式風格,推薦優先使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved