首页 > 其他分享 >递归查询

递归查询

时间:2024-02-15 20:23:14浏览次数:35  
标签:return 递归 menu List categoryEntity 查询 getSort

@Override
public List<CategoryEntity> listWithTree() {

//1、查询出所有分类
List<CategoryEntity> entities = super.baseMapper.selectList(null);

//2、组装成父子的树形结构

//2.1)、找到所有一级分类
List<CategoryEntity> levelMenus = entities.stream()
.filter(e -> e.getParentCid() == 0)
.map((menu) -> {
menu.setChildren(getChildrens(menu, entities));
return menu;
})
.sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort())))
.collect(Collectors.toList());

return levelMenus;
}

//递归查找所有菜单的子菜单
private List<CategoryEntity> getChildrens(CategoryEntity root, List<CategoryEntity> all) {

List<CategoryEntity> children = all.stream().filter(categoryEntity -> {
return categoryEntity.getParentCid().equals(root.getCatId());
}).map(categoryEntity -> {
//1、找到子菜单(递归)
categoryEntity.setChildren(getChildrens(categoryEntity, all));
return categoryEntity;
}).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());

return children;

}
 

标签:return,递归,menu,List,categoryEntity,查询,getSort
From: https://www.cnblogs.com/JavaYuYin/p/18016555

相关文章

  • 树状数组区间修改区间查询
    树状数组区间修改区间查询问题——两种操作给定\(l,r,x\),将\([l,r]\)这个区间内的所有值都加上\(x\)给定\(l,r\)求出\([l,r]\)的区间和这道题肯定要用前缀和和差分,那么大体框架可以出来了//操作一:update(l,x),update(r+1,-x);//操作二query(r)-query(l......
  • 力扣 递归 迭代 栈 广度 队列 之 226. 翻转二叉树
    给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。 示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]栈/** *Definitionforabinarytreenode. *publicclassTreeNode......
  • 【性能测试】Mysql之慢查询01
    一、Mysql常用监控指标慢查询SQL慢查询:指执行速度低于设置的阀值的SQL语句作用:帮助定位查询速度较慢的SQL语句,方便更好的优化数据库系统的性能1、开启MySQL慢查询日志参数说明:slow_query_log:慢查询日志开启状态[ON:开启,OFF:关闭]slow_query_log_file:慢查询日志存放位置......
  • 力扣递归 深度优先搜索 之 104. 二叉树的最大深度
    给定一个二叉树root,返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 示例1: 输入:root=[3,9,20,null,null,15,7]输出:3示例2:输入:root=[1,null,2]输出:2/** *Definitionforabinarytreenode. *publicclassTre......
  • 力扣 145. 二叉树的后序遍历 递归 迭代
    递归/** *Definitionforabinarytreenode. *publicclassTreeNode{ *  intval; *  TreeNodeleft; *  TreeNoderight; *  TreeNode(){} *  TreeNode(intval){this.val=val;} *  TreeNode(intval,TreeNodelef......
  • 力扣 144. 二叉树的前序遍历 递归 迭代
    递归/** *Definitionforabinarytreenode. *publicclassTreeNode{ *  intval; *  TreeNodeleft; *  TreeNoderight; *  TreeNode(){} *  TreeNode(intval){this.val=val;} *  TreeNode(intval,TreeNodelef......
  • 连续性区间位置查询——链式并查集
    目录问题概述思路分析参考代码做题总结问题概述这里给出两个题目,一个是上一篇的新春漫步(其实当时给的官方题解就是链式并查集的写法,但是当时我懒得写了,emmm),二是最近vp的一场cf_div3_923场的d题,准确来说,就是因为这个我才准备写这个的,题目大概就是给出一个长度为n的数组和q组询......
  • 力扣94. 二叉树的中序遍历 递归&迭代
    给定一个二叉树的根节点root,返回它的中序 遍历。 示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1] 递归/** *Definitionforabinarytreenode. *publicclassTreeNode{ *  intval;......
  • Service Control Manager (SCM):Windows 自带的服务控制管理器(SCM)是一个命令行工具,用于
    ServiceControlManager(SCM):Windows自带的服务控制管理器(SCM)是一个命令行工具,用于安装、启动、停止、删除和查询系统中的服务。您可以使用sc命令来执行这些操作,以及查看服务的状态和配置。描述:    SC是用来与服务控制管理器和服务进行通信    的命令行程......
  • PowerShell 命令 ,用于安装、启动、停止、删除和查询系统中的服务
    PowerShell命令,用于安装、启动、停止、删除和查询系统中的服务:安装服务:powershellCopyCodeNew-Service-Name"ServiceName"-BinaryPathName"C:\Path\to\Service.exe"这个命令将在系统中安装一个名为"ServiceName"的新服务,并指定服务的可执行文件路径为"C:\Path\to\S......