遞迴樹形查詢所有分類
遞迴樹形查詢所有分類
/**
* 遞迴樹形查詢所有分類
* @return
*/
@Override
public List<CategoryEntity> listWithTree() {
//1.查出所有分類
List<CategoryEntity> entities = baseMapper.selectList(null);
//2.組裝成父子的樹形結構
//2.1找到所有一級分類
List<CategoryEntity> level1Menus =
//設定查詢條件:父級分類Id==0就是所有一級分類
entities.stream().filter(categoryEntity -> categoryEntity.getParentCid() == 0)
.map(menu -> {
//設定子分類
menu.setChildren(getChildrens(menu, entities));
return menu;
})
.sorted((menu1,menu2) ->
//升序排序
(menu1.getSort() == null? 0 : menu1.getSort()) - (menu2.getSort() == null? 0 : menu2.getSort()))
.collect(Collectors.toList());
return level1Menus;
}
/**
* 遞迴查詢所有子選單
* @param root 當前選單
* @param all 所有選單
* @return 所有子選單
*/
private List<CategoryEntity> getChildrens(CategoryEntity root, List<CategoryEntity> all) {
List<CategoryEntity> children =
all.stream().filter(categoryEntity -> categoryEntity.getParentCid() == root.getCatId())
.map(categoryEntity -> {
//這裡自己呼叫自己
categoryEntity.setChildren(getChildrens(categoryEntity, all));
return categoryEntity;
})
.sorted((menu1,menu2) ->
(menu1.getSort() == null? 0 : menu1.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort()))
.collect(Collectors.toList());
return children;
}
相關文章
- JS遞迴過濾樹形結構陣列物件--模糊查詢JS遞迴陣列物件
- Java實現遞迴查詢樹結構Java遞迴
- 遞迴-M--二分查詢遞迴
- 遞迴函式-樹形列表遞迴函式
- SqlServer遞迴查詢SQLServer遞迴
- PostgreSQL 遞迴查詢SQL遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- oracle樹形查詢Oracle
- 遞迴查詢子元素遞迴
- 二分法查詢(遞迴實現)遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- Vue遞迴元件+Vuex開發樹形元件Tree--遞迴元件Vue遞迴元件
- Python遞迴函式,二分查詢演算法Python遞迴函式演算法
- 使用遞迴實現樹狀選單(無限級分類)遞迴
- oracle之樹狀結構的儲存與展示(遞迴查詢)Oracle遞迴
- ThinkPHP 無線遞迴分類PHP遞迴
- java-遞迴(檔案查詢)Java遞迴
- 資料庫——查詢樹形結構某節點的所有子節點、所有父節點資料庫
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- [js] 根據元素ID遍歷樹形結構,查詢到所有父元素IDJS
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- 二叉樹的所有遍歷非遞迴實現二叉樹遞迴
- ffmpeg命令分類查詢
- iOS 演算法之排序、查詢、遞迴iOS演算法排序遞迴
- 資料庫遞迴查詢:MySQL VS Sequelize資料庫遞迴MySql
- 透過遞迴查詢應用依賴遞迴
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 圖解--二分查詢樹圖解
- 簡單C#遞迴(向前查詢上工序)C#遞迴
- C#使用自己寫的海龜繪圖類繪製遞迴分型樹C#繪圖遞迴
- LightDB 22.4 新特性之相容Oracle樹形查詢Oracle
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 通過java反射,遞迴查詢物件所有屬性,為空也要返回欄位的結構Java反射遞迴物件
- php 無限分類遞迴 和 無限分類引入 的效能差距PHP遞迴
- 資料結構之查詢(順序、折半、分塊查詢,B樹、B+樹)資料結構
- 記錄一次遞迴查詢的運用遞迴
- 聊聊mysql的樹形結構儲存及查詢MySql
- 通用-遞迴樹結構遞迴