`

JAVA递归 ,得到部门树

    博客分类:
  • java
 
阅读更多
public DepartmentUserTreeNode getTree(String location,String  name) {
		List<DepartmentUserTreeNode> depts = deparDao.qryDepts();
		DepartmentUserTreeNode rootDept = deparDao.qryRootDept();
		
		
		recursion(depts, rootDept,0,location,name);
		
		return rootDept;
		
	}
	
	
    private int recursion(List<DepartmentUserTreeNode> list, DepartmentUserTreeNode node,int count,String location,String  name) {
        List<DepartmentUserTreeNode> childList = getChildList(list, node);// 得到子节点列表
        List<Employee> emps = empDao.qryByDept(node.getDeptId(),location,name);
        count = CollectionUtils.isEmpty(emps)?0:emps.size();
        
        
        node.setEmps(emps);
      
        if (!CollectionUtils.isEmpty(childList)) {
          
           node.setDepts(childList);
         
            Iterator<DepartmentUserTreeNode> it = childList.iterator();
            while (it.hasNext()) {
            	DepartmentUserTreeNode n = (DepartmentUserTreeNode) it.next();
            	count = count+recursion(list, n,count,location,name);
            }
            
        } else {
        	node.setDepts(null);
        }
        
        node.setEmpCount(count);
        return count;
    }
    
    private List<DepartmentUserTreeNode> getChildList(List<DepartmentUserTreeNode> list, DepartmentUserTreeNode node) {
        List<DepartmentUserTreeNode> nodeList = new ArrayList<DepartmentUserTreeNode>();
        Iterator<DepartmentUserTreeNode> it = list.iterator();
        while (it.hasNext()) {
        	DepartmentUserTreeNode n = (DepartmentUserTreeNode) it.next();
            if (n.getParentId().equals(node.getDeptId()) ) {
                nodeList.add(n);
            }
        }
        return nodeList;
    }

输入,LIST数据

JAVA递归 ,得到部门树,部门人员,以及,当前部门下所有的人员数(一直到底)。

 

结果数据格式:

 

最终展现:



 

  • 大小: 47.2 KB
  • 大小: 74.5 KB
分享到:
评论

相关推荐

    java递归无限层级树

    在Java编程中,递归是一种强大的工具,常用于解决复杂问题,例如构建和遍历层次结构数据,如无限层级的树。在这个场景中,我们利用Java递归来表示一个树形结构,这种结构可以无限深入,每个节点可能包含子节点,也...

    Java递归算法构造JSON树形结构

    Java 递归算法构造 JSON 树形结构 Java 递归算法构造 JSON 树形结构是指通过 Java 语言使用递归算法将数据库中的菜单表构建成树形的 JSON 格式发送给第三方。这种方法可以将复杂的树形结构数据转换成易于理解和处理...

    java递归树型结构通用数据库

    在Java递归树型结构通用数据库中,使用递归树型结构来存储部门信息,部门之间存在父子关系,每个部门都有一个唯一的ID,父部门的ID作为子部门的Parent ID,通过这种方式实现树型结构的部门管理。 2. 部门管理接口...

    java简单开发部门树(Tree)

    在Java开发中,构建部门树(Tree)是一个常见的需求,特别是在企业级应用中,用于展示组织结构或权限管理。这个项目提供了从JSP前端到Java后端的完整解决方案,非常适合初学者理解和学习,也能帮助有经验的开发者...

    Java递归将List转为树形结构Java递归将List转为树形结构

    Java递归将List转为树形结构 博客地址:https://blog.csdn.net/weixin_38500202/article/details/110456363

    Java递归算法遍历部门代码示例

    Java 递归算法遍历部门代码示例是指使用 Java 语言实现的递归算法来遍历部门树结构的示例代码。该示例代码主要用于介绍如何使用 Java 递归算法来遍历部门树结构,具有较高的借鉴价值。 知识点一:递归算法 递归...

    java递归实现树(Tree)

    一个简单的小例子递归实现list按照index排序的树

    用Java集合递归实现通用树Tree

    本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将深入探讨这个主题。 首先,我们要了解Java集合框架。Java集合框架是Java语言提供的一组接口和类,用于存储和操作各种数据结构...

    ASP.NET-Treeview-递归生成部门树

    在这个"ASP.NET-Treeview-递归生成部门树"的示例中,我们将探讨如何利用TreeView控件结合递归算法来构建一个表示部门结构的树形视图。 首先,我们要理解TreeView的基本概念。TreeView控件是一个可视化组件,它能够...

    java 递归 画树

    在Java编程中,递归是一种强大的技术,常用于解决复杂问题,例如数据结构的遍历、树形结构的绘制等。本示例中,我们利用Java递归来简单地画出一棵树,这是一个典型的图形用户界面(GUI)应用,通过NetBeans IDE实现...

    java 递归问题文档

    在Java中,递归尤其重要,因为它可以帮助我们解决许多复杂的问题,如树遍历、图遍历、分治策略等。这篇“java 递归问题文档”很可能是对递归的深入讲解和实例分析,旨在帮助初学者理解和掌握这一关键技能。 首先,...

    Java递归遍历树形结构

    在给定的标题和描述中,我们看到的是如何使用Java递归遍历来遍历和构建树形菜单。 首先,我们需要了解递归的基本概念。递归是一种函数或方法调用自身的技术,通常在解决具有相同基本结构的问题时非常有用。在树形...

    JAVA_SQL递归树形

    JAVA_SQL递归树形,用递归算法结合数据库对J2EE实现树结构

    Java递归算法(PPT+PDF+Word)

    Java递归算法是一种重要的编程技巧,它通过函数自身调用自身来解决问题。在Java中,递归主要用于解决那些可以通过简化规模来逐步逼近解决方案的问题。这种技术在数据结构(如树和图)、排序算法(如快速排序和归并...

    Java SE程序 递归 Java SE程序 递归

    Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE...

    java递归算法

    java递归算法,java递归算法,java递归算法

    java 递归读取文件夹 读取文件 写文件

    java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...

    java利用递归调用实现树形菜单的样式

    Java 递归调用实现树形菜单样式 Java 递归调用是一种编程技巧,通过程序调用自身来解决问题。递归做为一种算法在程序设计语言中广泛应用。在 Java 中,递归调用可以用来实现树形菜单的样式,例如,获取帖子的所有...

    递归形成树形结构.txt

    java递归形成树形结构

    mybatis递归查询菜单树

    在本示例中,"mybatis递归查询菜单树"是一个基于SpringBoot架构的应用,它演示了如何利用MyBatis进行递归查询来构建菜单树结构。此外,这个项目还集成了JTA(Java Transaction API)以支持分布式事务处理,并使用了...

Global site tag (gtag.js) - Google Analytics