用java写一个递归,查询返回一个List<EducTreeSelect> treeSelects,treeSelects中有child,child类型为EducTreeSelect,child下可能还有child,如何用递归打印
时间: 2024-10-20 09:09:16 浏览: 20
在Java中,你可以使用递归来遍历并打印树形结构的数据,例如`EducTreeSelect`对象。下面是一个简单的例子,展示了如何通过递归函数来获取所有包含子节点的列表:
```java
import java.util.ArrayList;
import java.util.List;
class EducTreeSelect {
private String name;
private List<EducTreeSelect> children;
// 构造函数、getter和setter省略
// 如果有子节点,可以这样添加
public void addChild(EducTreeSelect child) {
if (children == null) {
children = new ArrayList<>();
}
children.add(child);
}
// 递归打印函数
public void printRecursively(List<EducTreeSelect> result) {
result.add(this); // 将当前节点添加到结果列表中
for (EducTreeSelect child : children) { // 遍历每个子节点
child.printRecursively(result); // 对每个子节点递归调用这个函数
}
}
// 调用函数时,创建一个空的结果列表
public static void main(String[] args) {
EducTreeSelect root = ... // 初始化你的树根节点
List<EducTreeSelect> treeSelects = new ArrayList<>();
root.printRecursively(treeSelects);
System.out.println("树形数据: " + treeSelects);
}
}
```
在这个例子中,`printRecursively`方法会将当前节点及其所有子孙节点添加到`result`列表中。当你运行`main`函数并传入初始的树根节点时,它会打印出整个树的结构。
阅读全文