//pid为父类id,父类id为0的是父类,开始pid传0
private List<CategoryVO> buildMenuTree(List<CategoryVO> menuList, Integer pid) {
List<CategoryVO> treeList = new ArrayList<>();
menuList.forEach(menu -> {
//找出父类
if (Objects.equals(pid, menu.getParentId())) {
//递归子类
List<CategoryVO> childMenus=buildMenuTree(menuList, menu.getId());
//子类不为空添加子类属性
if(!CollectionUtils.isEmpty(childMenus)){
menu.setChildren(childMenus);
}
treeList.add(menu);//无论但前对象是否有子类,将当前对象添加到返回列表
}
});
return treeList;
}
类目信息:
public class CategoryVO{ private Integer id; /** * 父类目ID */ private Integer parentId; private String parentName; /** * 类目名称 */ private String name; /** * 类目名称-前端适配 */ private String text; /** * 图片 */ private String img; /** * 层级 */ private Integer level; /** * 是否叶子类目 */ private Boolean leaf; /** * 子类目 */ private List<CategoryVO> children; }