Java树形结构递归查询方式
更新时间:2024年12月17日 10:32:23 作者:冷冷清清中的风风火火
文章介绍了Java中实现树形结构递归查询的方法,首先找出所有的根节点,然后通过循环遍历根节点,找到每个根节点的子节点,最终构建完整的树形结构,这是一种有效的递归查询思路,适用于需要层次化展示数据的场景
Java树形结构递归查询
思路
先找到所有的根节点,再通过循环遍历所有的根节点,找到每个跟节点的子节点,最终形成一个树形结构
/**
* 构建树形结构数据new
* @param org
* @return
*/
public List<OrgEntity> builTree(OrgEntity org){
List<OrgEntity> treeMenus =new ArrayList<>();
// 查询所有数据
List<OrgEntity> reList = this.queryListByOrg(org);
// 获取根节点数据
List<OrgEntity> rootList = this.getRootNode(reList);
for(OrgEntity node : rootList){
// 为根节点数据递归添加字点数据
node=buildChilTree(node,reList);
treeMenus.add(node);
}
return treeMenus;
}
/**
* 获取根节点new
* @param list
* @return
*/
public List<OrgEntity> getRootNode(List<OrgEntity> list){
List<OrgEntity> rootMenuLists =new ArrayList
// 遍历list,获取根节点数据
for(OrgEntity menuNode : list) {
boolean isExit = false;
for(OrgEntity node : list){
if(menuNode.getParentId() != null && menuNode.getParentId().equals(node.getId())){
isExit = true;
break;
}
}
// 如果遍历该数据没有上级节点,就放到根节点list中,否则就不放
if(!isExit){
rootMenuLists.add(menuNode);
}
}
return rootMenuLists;
}
//递归,建立子树形结构new
public OrgEntity buildChilTree(OrgEntity pNode,List<OrgEntity> list){
List<OrgEntity> chilMenus =new ArrayList<>();
for(OrgEntity menuNode : list) {
if(menuNode.getParentId().equals(pNode.getId())) {
chilMenus.add(buildChilTree(menuNode,list));
}
}
pNode.setChildren(chilMenus);
return pNode;
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Springboot项目Mybatis升级为Mybatis-Plus的详细步骤
在许多 Java 项目中,MyBatis 是一个广泛使用的 ORM 框架,然而,随着 MyBatis-Plus 的出现,许多开发者开始迁移到这个更加简洁、高效的工具,它在 MyBatis 的基础上提供了更多的功能,所以本文将介绍Springboot项目Mybatis升级为Mybatis-Plus的详细步骤2025-03-03
springboot整合easy-es实现数据的增删改查的示例代码
Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低码开发框架,本文主要介绍了springboot整合easy-es实现数据的增删改查的示例代码,具有一定的参考价值,感兴趣的可以了解一下2024-03-03
Java源码解析阻塞队列ArrayBlockingQueue常用方法
今天小编就为大家分享一篇关于Java源码解析阻塞队列ArrayBlockingQueue常用方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01
Spring boot security权限管理集成cas单点登录功能的实现
这篇文章主要介绍了Spring boot security权限管理集成cas单点登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-03-03


最新评论