我现在有三个字段 一个是部门id 一个是父id 还有一个字段要写所有的父id 直到顶级 然后我现在需要一个方法用java 代码实现
时间: 2023-06-02 14:03:45 浏览: 69
Okay,我可以帮你解决这个问题。以下是一个简单的递归方法来实现你的需求:
```java
public static void getParentIds(int deptId, Map<Integer, Integer> map) {
if (deptId == 0) { // 到达顶级部门
return;
}
int parentId = map.get(deptId);
if (parentId == 0) { // 已经到达顶级部门,不需要再递归
return;
}
getParentIds(parentId, map); // 递归获取父部门的parentId和deptId
System.out.print(parentId + ","); // 输出每一个父部门的parentId
}
// 测试一下
public static void main(String[] args) {
Map<Integer, Integer> map = new HashMap<>();
map.put(1, 0);
map.put(2, 1);
map.put(3, 2);
map.put(4, 3);
map.put(5, 4);
getParentIds(5, map);
}
```
这个方法的思路是:
1. 如果当前部门的父id为0,则已经到达最高部门,停止递归
2. 如果不是最高部门,则输出当前部门的父id,然后继续递归它的父id
3. 重复以上步骤,直到到达最高部门
阅读全文