業務邏輯 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;
}
相關文章
- 巢狀類遞迴巢狀遞迴
- 用java實現業務邏輯Java
- 使用遞迴實現樹狀選單(無限級分類)遞迴
- Java實現多級選單(遞迴)Java遞迴
- Pytorch實戰-logistic 迴歸二元分類程式碼詳細註釋PyTorch
- Python實現快遞分揀小程式(附原始碼和超詳細註釋)Python原始碼
- php利用遞迴函式實現無限級分類PHP遞迴函式
- PHP無限級分類的實現(不使用遞迴)PHP遞迴
- [java程式碼]業務邏輯查詢幫助類Java
- Android實現RecyclerView巢狀流式佈局AndroidView巢狀
- 機器學習筆記-多類邏輯迴歸機器學習筆記邏輯迴歸
- DDD開源COLA應用架構-實現分離業務邏輯和技術細節應用架構
- 機器學習(三):理解邏輯迴歸及二分類、多分類程式碼實踐機器學習邏輯迴歸
- Linux Shell程式設計(17)——巢狀迴圈Linux程式設計巢狀
- 實現拼團業務邏輯
- 萬字詳解 | Java 流式程式設計Java程式設計
- 機器學習筆記(3):多類邏輯迴歸機器學習筆記邏輯迴歸
- 詳細分析連結串列中的遞迴性質(Java 實現)遞迴Java
- 分類演算法-邏輯迴歸與二分類演算法邏輯迴歸
- 應用架構之道:分離業務邏輯和技術細節應用架構
- 邏輯迴歸求解二分類問題以及SPSS的實現邏輯迴歸SPSS
- 《Java程式設計邏輯》第3章 類的基礎Java程式設計
- java和C++邏輯註釋文件JavaC++
- 分類演算法(1)-LR邏輯迴歸演算法邏輯迴歸
- sqlHelper類的中文 詳細註釋SQL
- tf.keras實現邏輯迴歸和softmax多分類Keras邏輯迴歸
- 好程式設計師教程分享Java註解和運用註解程式設計程式設計師Java
- [02] 多執行緒邏輯程式設計執行緒程式設計
- Android巢狀滑動邏輯淺析Android巢狀
- 微信小程式入門教程--列表渲染多層巢狀迴圈及wx:key的使用微信小程式巢狀
- 三、邏輯迴歸logistic regression——分類問題邏輯迴歸
- 機器學習筆記(6):多類邏輯迴歸-使用gluon機器學習筆記邏輯迴歸
- 機器學習筆記(4):多類邏輯迴歸-使用gluton機器學習筆記邏輯迴歸
- 列表巢狀操作巢狀
- Java註解最全詳解(超級詳細)Java
- 邏輯升級,深度解析如何實現業務中的且或元件元件
- 微分銷功能設計_分銷模式新玩法功能業務邏輯_OctShop模式
- Mysql 實現樹狀遞迴查詢MySql遞迴