業務邏輯 streamAPI運用 :java流式程式設計遞迴實現巢狀多級分類列表 詳細註釋
詳細記錄java流式程式設計,運用streamAPI filter,map,collect方法
結合實戰舉例記錄這些運用
業務邏輯為 多級分類 比如 一級分類為 手機 二級分類 就有華為手機 蘋果手機
三級分類就有 P系列 mate系列 nova系列 iphone系列 等等
@Override
public List<CategoryEntity> listWithTree() {
//1.查出所有分類
List<CategoryEntity> entities = baseMapper.selectList(null);
//2.組裝成父子樹形結構
//2.1 找到所有一級分類 最頂部的父分類
List<CategoryEntity> level1Menus = entities.stream().filter((categoryEntity) -> {
return categoryEntity.getParentCid() == 0;//filter中的箭頭函式來篩選,在我資料庫中ParentCid == 0 的是一級分類
}).map((menu)->{
menu.setChildren(getChildren(menu,entities)); //map中對每一個實體物件來做對映,找到他們的子分類,見下方自定義方法
return menu;
}).sorted((menu1,menu2)->{
return (menu1.getSort()==null?0:menu1.getSort()) - (menu2.getSort()==null?0:menu2.getSort());//解決空指標異常
}).collect(Collectors.toList());//將結果轉化為list型別
return level1Menus;
}
//遞迴查詢所有選單的子選單
private List<CategoryEntity> getChildren(CategoryEntity root,List<CategoryEntity> all){
List<CategoryEntity> children = all.stream().filter((entity) -> {
return entity.getParentCid() == root.getCatId();
}).sorted((menu1, menu2) -> {
return (menu1.getSort()==null?0:menu1.getSort()) - (menu2.getSort()==null?0:menu2.getSort());//解決空指標異常
}).map((entity) -> {
//繼續遞迴找子選單
entity.setChildren(getChildren(entity, all)); //繼續呼叫本方法,遞迴往下找
return entity;
}).collect(Collectors.toList());
return children;
}
相關文章
- 巢狀類遞迴巢狀遞迴
- Pytorch實戰-logistic 迴歸二元分類程式碼詳細註釋PyTorch
- 使用遞迴實現樹狀選單(無限級分類)遞迴
- Java實現多級選單(遞迴)Java遞迴
- Python實現快遞分揀小程式(附原始碼和超詳細註釋)Python原始碼
- Android實現RecyclerView巢狀流式佈局AndroidView巢狀
- DDD開源COLA應用架構-實現分離業務邏輯和技術細節應用架構
- 萬字詳解 | Java 流式程式設計Java程式設計
- 邏輯迴歸求解二分類問題以及SPSS的實現邏輯迴歸SPSS
- 《Java程式設計邏輯》第3章 類的基礎Java程式設計
- 實現拼團業務邏輯
- 詳細分析連結串列中的遞迴性質(Java 實現)遞迴Java
- java和C++邏輯註釋文件JavaC++
- 應用架構之道:分離業務邏輯和技術細節應用架構
- 分類演算法-邏輯迴歸與二分類演算法邏輯迴歸
- Android巢狀滑動邏輯淺析Android巢狀
- 好程式設計師教程分享Java註解和運用註解程式設計程式設計師Java
- [02] 多執行緒邏輯程式設計執行緒程式設計
- COMP 330正則化邏輯迴歸分類邏輯迴歸
- 三、邏輯迴歸logistic regression——分類問題邏輯迴歸
- 分類演算法(1)-LR邏輯迴歸演算法邏輯迴歸
- tf.keras實現邏輯迴歸和softmax多分類Keras邏輯迴歸
- 機器學習(三):理解邏輯迴歸及二分類、多分類程式碼實踐機器學習邏輯迴歸
- [work] python巢狀字典的遞迴遍歷Python巢狀遞迴
- 列表巢狀操作巢狀
- 機器學習筆記-多類邏輯迴歸機器學習筆記邏輯迴歸
- 在Java服務端實現策略模式:如何靈活應對業務邏輯的多變性Java服務端模式
- Java註解最全詳解(超級詳細)Java
- Java實驗六: Java流式程式設計與網路程式設計(頭歌)Java程式設計
- 微分銷功能設計_分銷模式新玩法功能業務邏輯_OctShop模式
- 好程式設計師web前端分享邏輯運算程式設計師Web前端
- 小程式選人控制元件 - 仿企業微信實現多選及多層級無規則巢狀控制元件巢狀
- 小程式選人控制元件 – 仿企業微信實現多選及多層級無規則巢狀控制元件巢狀
- 例2.4 使用列表推導式實現巢狀列表的平鋪巢狀
- 邏輯升級,深度解析如何實現業務中的且或元件元件
- 用Java的方式模擬Flutter的Widget的實現(多層括號巢狀)JavaFlutter巢狀
- 常見會計科目及詳細註釋三(成本類、損益類)
- Java進階07 巢狀類Java巢狀