递归获取某个节点的儿子节点
java 代码:
public List<Department> getAllChildrenDepartmentsFlat(Long parentId) {
List<Department> allDepartments = departmentRepository.findAll(); // 假设使用JPA的Repository来进行数据库操作
List<Department> allChildren = new ArrayList<>();
Department parent = departmentRepository.findById(parentId);
if (parent != null) {
allChildren.add(parent);
flattenChildren(allDepartments, parent, allChildren);
}
return allChildren;
}
private void flattenChildren(List<Department> allDepartments, Department parent, List<Department> flatList) {
List<Department> children = allDepartments.stream()
.filter(department -> department.getParentId().equals(parent.getId()))
.collect(Collectors.toList());
for (Department child : children) {
flatList.add(child);
flattenChildren(allDepartments, child, flatList);
}
}

浙公网安备 33010602011771号