用java实现递归查询当前部门以及当前部门下的所有子部门数据
时间: 2024-01-21 10:17:10 浏览: 201
假设我们有一个部门类 `Department`,其中包含部门ID、部门名称、上级部门ID等属性,那么可以通过递归查询当前部门及其子部门的方式如下:
```java
public class Department {
private int id; // 部门ID
private String name; // 部门名称
private int parentId; // 上级部门ID
// 省略getter和setter方法
}
public class DepartmentService {
private List<Department> departmentList; // 所有部门的列表
// 递归查询部门及其子部门
public List<Department> findSubDepartments(int departmentId) {
List<Department> subDepartmentList = new ArrayList<>();
for (Department department : departmentList) {
if (department.getParentId() == departmentId) {
subDepartmentList.add(department);
// 递归查询子部门
subDepartmentList.addAll(findSubDepartments(department.getId()));
}
}
return subDepartmentList;
}
}
```
在上述代码中,`findSubDepartments` 方法接收一个部门ID作为参数,返回当前部门及其所有子部门的列表。首先遍历所有部门,找到其中上级部门ID等于给定部门ID的部门,将其加入子部门列表中,然后递归查询这个部门的子部门,将其子部门列表也加入子部门列表中,最终返回所有子部门的列表。
阅读全文