树形部门,知道一级部门id,查询其下级部门id,上级和下级关系字段是 parent_id ,上级id等于下级的parent_id,parent_id为空的是一级部门,java递归算法是
时间: 2024-09-27 10:16:14 浏览: 36
sqlserver实现树形结构递归查询(无限极分类)的方法
树形部门结构通常用于组织层级管理,其中每个部门都有一个`parent_id`表示它的直接上级部门ID。如果你需要查询给定一级部门的下级部门ID,并考虑递归查找所有子节点,可以使用Java的递归算法。以下是基本思路:
```java
public List<Integer> getSubDepartmentIds(int parentId, Department departmentList) {
// 定义一个空列表来保存结果
List<Integer> subDepartmentIds = new ArrayList<>();
// 遍历部门列表
for (Department dept : departmentList) {
// 如果当前部门的父ID等于给定的一级部门ID
if (dept.getParentId() == parentId) {
// 添加当前部门的ID到结果
subDepartmentIds.add(dept.getId());
// 对当前部门的所有子部门递归调用此方法
subDepartmentIds.addAll(getSubDepartmentIds(dept.getId(), departmentList));
}
}
return subDepartmentIds;
}
// 这里Department是一个实体类,包含id和parentId属性
private static class Department {
private int id;
private int parentId;
// getters and setters...
}
// 要获取一级部门ID为1的下级部门ID,传入departmentList和1作为参数
List<Integer> result = getSubDepartmentIds(1, yourDepartmentList);
```
这个函数会返回一个包含给定一级部门及其所有下属部门ID的列表。注意,你需要提供实际的`Department`类实例以及包含所有部门数据的列表。
阅读全文