查询子级菜单递归查询具体实现方法1(JAVA8):
public void getTreeCategory() {
//查询所有的分类
List<VipGoodsCategory> vipGoodsCategoryList = vipGoodsCategoryService.listGoodsCategory();
//查询顶级分类
List<VipGoodsCategory> top = vipGoodsCategoryList.stream().filter(x -> StringUtils.isEmpty(x.getParentId()) || x.getParentId().equals("-1")).collect(Collectors.toList());
//parentId作为key,子级作为value组成的map
Map<String, List<VipGoodsCategory>> allMap = vipGoodsCategoryList.stream().collect(Collectors.groupingBy(VipGoodsCategory::getParentId));
//递归查询
List<VipGoodsCategory> list = this.treeCategoryData(top, allMap);
for (VipGoodsCategory category : list) {
System.out.println(category.getAuId()+","+category.getCategoryName()+","+category.getParentId()+","+category.getChildren().get(0).getCategoryName());
}
}
public List<VipGoodsCategory> treeCategoryData(List<VipGoodsCategory> top, Map<String, List<VipGoodsCategory>> allMap) {
//遍历
top.forEach(category -> {
List<VipGoodsCategory> temp = allMap.get(category.getAuId());
if (temp != null && !temp.isEmpty()) {
category.setChildren(temp);
treeCategoryData(category.getChildren(), allM

本文介绍了使用JAVA进行递归查询以展示菜单层级的两种具体实现方法,并探讨了如何进行反向递归查询父级菜单。通过实例代码与TreeJson实体类的解析,详细阐述了递归在菜单查询中的应用。
最低0.47元/天 解锁文章
931





