`

递归遍历无限极节点树

阅读更多
1、查询出所有的根节点:
public List<Object> getGroupTree() {
List<Object> list=new ArrayList<Object>();
List<Group> groupList=groupDao.getGroupList("/");
for (Group group : groupList) {
  list.add(getChildrenList(group));
}
return list;
}
2、遍历某根节点的所有子节点:
public Map<String, Object> getChildrenList(Group group){
if (group==null) {
  return null;
}
Map<String, Object> map=new HashMap<String, Object>();
String path=group.getPath();
String idPath="/"+group.getId();
if (!"/".equals(path)) {
  idPath+=group.getPath();
}
map.put("id", idPath);
map.put("text", group.getName());
List<Group> groupList=groupDao.getGroupList(idPath);
if (groupList==null||groupList.size()<=0) {// 没有子节点了
  return map;
}
map.put("state", "closed");
List<Map<String, Object>> childrenList=new ArrayList<Map<String,Object>>();
for (Group group2 : groupList) {
  childrenList.add(getChildrenList(group2));
}
map.put("children", childrenList);
return map;
}
分享到:
评论

相关推荐

    带复选框的无限极节点树

    "带复选框的无限极节点树"是一种高效的数据展示和操作方式,它允许用户在多级分类结构中进行选择,同时提供了直观的复选框来标记用户的选择。这种技术广泛应用于文件管理系统、组织架构展示、权限管理等场景。 首先...

    树父节点递归获取树子节点

    如果传入的父节点不为空并且具有子节点,它会遍历每个子节点,将其添加到结果列表中,并通过递归调用自身获取子节点的子节点,将这些子节点也添加到结果列表中。最后,返回包含所有子节点的列表。 在实际项目中,你...

    无限极节点,控件类,2个递归方法.rar

    在这个"无限极节点,控件类,2个递归方法.rar"的压缩包中,我们很可能是看到了两个关键的递归函数,用于构建和遍历无限级节点树。递归方法是编程中的重要技巧,它通过调用自身来解决问题,尤其在处理树形结构时非常...

    用递归算法实现无限极添加、删除、修改和移动菜单

    通过递归遍历菜单树,找到目标节点后进行更新即可。如果目标节点的子节点也需要修改,同样可以通过递归来实现。 **6. 移动菜单项** 移动菜单项涉及到更改节点的父节点。这需要递归地找到目标节点,然后将其从当前父...

    Java 无限极 树结构

    对于无限极树,遍历可能需要递归实现。例如,前序遍历的实现: ```java public void preOrderTraversal(TreeNode node) { if (node != null) { System.out.println(node.getName()); for (TreeNode child : node...

    无限级分类----改进前序遍历树

    改进的前序遍历算法可以借助递归实现,遍历过程中不仅访问当前节点,还要将所有子节点(包括孙节点、曾孙节点等)都纳入遍历范围。以下是一个C#的递归实现示例: ```csharp public static void ...

    php递归获取子级,父级,无限极分类,带demo,效率超高

    通常,使用预排序遍历树(Preorder Traversal)或后序遍历(Postorder Traversal)可以有效减少递归深度,降低内存使用。另外,通过缓存结果,避免重复计算,也能显著提高性能。 5. **DataTree.php**: 这个文件很...

    jsOOP无限极多选树

    无限极多选树的核心在于递归和遍历。递归是解决无限层级问题的关键,因为树的每一级都可以包含新的子树。遍历则用于处理节点的选取和取消选取。在OOP设计中,我们可以创建一个Tree或TreeNode类来封装这些逻辑。 类...

    php通过前序遍历树实现无需递归的无限极分类

    本文介绍了一种基于前序遍历树的非递归方法,这种方法在大数据量场景下更高效。 首先,我们需要创建一个存储分类的数据表,这里是一个名为`category`的示例表结构: ```sql CREATE TABLE IF NOT EXISTS `category`...

    thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法

    在介绍thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法时,需要掌握的核心知识点主要集中在以下几个方面: 首先,理解thinkPHP框架中递归的概念。递归是一种常见的编程技术,是指函数直接或间接调用自身的...

    jQuery递归无限极树状菜单.zip

    本项目"jQuery递归无限极树状菜单"就是这样一个解决方案,它利用jQuery的灵活性和CSS的样式控制,实现了可扩展的无限级树形菜单。 首先,我们需要理解jQuery的核心概念。jQuery是一个JavaScript库,它简化了HTML...

    无限极树的javascript

    2. **遍历与递归**:无限级树的特性意味着每个节点可能有任意数量的子节点,因此我们需要用到递归函数来遍历整个树。递归函数会不断地调用自身,处理当前节点的子节点,直到没有子节点为止。 ```javascript ...

    无限极树形菜单js+.net

    1. **遍历数据**:无限级树形菜单通常需要处理的数据结构是递归的,即每个节点可能包含子节点,子节点又可能有子节点,以此类推。JavaScript需要能够遍历这种数据结构,生成相应的HTML结构。 2. **DOM操作**:...

    C#无限极分类

    - **递归查询**:使用SQL的递归公用表表达式(CTE)或C#中的递归函数遍历整个分类树。 - **栈或队列**:使用数据结构进行层次遍历,例如深度优先搜索(DFS)使用栈,广度优先搜索(BFS)使用队列。 4. C#业务逻辑...

    jQuery实现递归无限极树状菜单特效源码.zip

    在这个案例中,递归用于处理未知层级的树节点,每次递归处理一个父节点及其所有子节点。 2. **jQuery选择器**:jQuery的选择器允许我们根据HTML元素的属性、类名、ID等选择元素。在构建树状菜单时,我们可能需要...

    无限极分类下拉框 无限极 分类 下拉框

    在实现无限极分类下拉框时,关键在于递归遍历数据源,将具有层级关系的数据逐层展开并添加到下拉框中。具体步骤如下: 1. **数据源准备**:首先,需要一个数据源,这个数据源应该包含每个分类项的唯一标识符(ID)...

    Java无限级树(递归)超实用案例

    总结来说,这个Java无限级树的递归案例展示了如何利用递归遍历和构建层级结构数据。递归方法通过不断调用自身处理子问题,有效地解决了无限级树的问题。在实际开发中,这种思路可以应用于各种场景,如构建导航菜单、...

    JSP无限级分类目录树.zip

    3. **递归遍历**:在Java后端,我们可以使用递归方法来遍历和构建树形结构。这个方法会根据父节点ID查询子节点,然后对每个子节点再次调用自身,直到所有子节点都被访问。 4. **JSP显示**:在JSP页面上,可以使用...

Global site tag (gtag.js) - Google Analytics