public List<Menu> listData(Menu menu) {
//所有分类数据
List<Menu> list = this.menuService.findList(menu);
// 2. 找出所有一级分类
// 在映射到每个一级分类 添加它的子分类类
List<Menu> collect = list.stream()
.filter(o -> o.getParentCode().equals("0"))
// 给每个一级分类加子分类
.peek(o -> o.setChildList(getChildList(o, list)))
.collect(Collectors.toList());
return collect.get(0).getChildList();
}
// 根据当前分类 找出子类, 并通过递归找出子类的子类
private List<Menu> getChildList(Menu currMenu, List<Menu> allList) {
return allList.stream().filter(o -> o.getParentCode().equals(currMenu.getId()))
.peek(o -> o.setChildList(getChildList(o, allList)))
.collect(Collectors.toList());
}
递归组装树形结构
最新推荐文章于 2024-02-22 17:02:11 发布