FlatMap和map的區別
官方解釋
map
回傳一個流,流里的元素是,原流元素經常函式處理的結果,
也可以理解為將原流的元素,通過function進行處理后替換,
flatMap
回傳一個流,先將流的元素通過指標函式映射,再合并一個流,
遇到問題的情況
通過資料庫分組查詢出一個物件的集合,物件的billId根據分組條件進行group_concat進行拼接,導致回傳的物件資料里,存在資料billId屬性的值為 billId,billId...類似的字串,現在需要遍歷集合收集成一個billId的list集合,
list.add(new String[]{"1","2,3","4,5,6"})
list.add(new String[]{"7,8","9"})
List<String> billIds = list.stream()
.map(bill -> bill.getBillId().split(","))
.flatMap(Arrays::stream)
.collect(Collectors.toList());
//billIds輸出為
//1,2,3,4,5,6,7,8,9
拿上述例子說明:
- map是將原來的物件流通過function將billId分割為字串陣列
- flatMap是將字串資料流每個元素進行流化操作,再將這些流放到一起形成一個字串流
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518460.html
標籤:Java
上一篇:VSCode搭建C和C++環境
