遞迴樹形查詢所有分類
遞迴樹形查詢所有分類
/**
* 遞迴樹形查詢所有分類
* @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;
}
相關文章
- Mysql 實現樹狀遞迴查詢MySql遞迴
- Java實現遞迴查詢樹結構Java遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 遞迴-M--二分查詢遞迴
- 樹形查詢
- 遞迴函式-樹形列表遞迴函式
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- oracle樹形查詢Oracle
- 【演算法拾遺】二分查詢遞迴非遞迴實現演算法遞迴
- SQL Server遞迴查詢SQLServer遞迴
- Oracle遞迴查詢sqlOracle遞迴SQL
- 一個遞迴查詢遞迴
- 用VisualC++6.0遞迴查詢目錄樹 (轉)C++遞迴
- Vue遞迴元件+Vuex開發樹形元件Tree--遞迴元件Vue遞迴元件
- 二分法查詢(遞迴實現)遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- sql無限遞迴查詢SQL遞迴
- grep遞迴查詢子目錄遞迴
- sql遞迴查詢子級SQL遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- oracle樹形選單查詢Oracle
- 使用遞迴實現樹狀選單(無限級分類)遞迴
- ThinkPHP 無線遞迴分類PHP遞迴
- 【資料結構】——搜尋二叉樹的插入,查詢和刪除(遞迴&非遞迴)資料結構二叉樹遞迴
- oracle之樹狀結構的儲存與展示(遞迴查詢)Oracle遞迴
- MySQL遞迴查詢樹狀表的子節點、父節點MySql遞迴
- java-遞迴(檔案查詢)Java遞迴
- MS SQL Server的遞迴查詢SQLServer遞迴
- Python遞迴函式,二分查詢演算法Python遞迴函式演算法
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- 我對Postgresql遞迴查詢的理解SQL遞迴
- 11GR2遞迴With子查詢遞迴
- MS SQL Server的遞迴查詢(2)SQLServer遞迴
- 二分查詢的兩種實現形式遞迴和迭代遞迴