【发布时间】:2016-02-20 10:02:19
【问题描述】:
我有一个树节点的数据库表,如下所示。我想用这些树节点用 Java 制作一个 ArrayList。 Arraylist 将在 Java 中以递归格式递归地获取所有树节点。
输入:
数据库表
Name ID Parent_ID
Parent 1
Child-1 2 1
Child-1.1 3 2
Child-1.1.1 4 3
Child-2 5 1
Child-3 6 1
Child-1.1.1.1 7 4
Child-1.2 8 2
我想以下面的 Java 格式制作上表的 ArrayList,其中 Sub 是子节点的列表,如果没有子节点,则 Sub 为 Null。
public class Node {
private String id;
private String name;
private String type;
private String value;
private List<Node> sub;
}
输出:
- 父母
- 孩子-1
- 儿童-1.1
- 儿童-1.1.1
- Child-1.1.1.1
- 儿童-1.1.1
- Child-1.2
- 儿童-1.1
- 孩子 2
- 孩子 3
- 孩子-1
有人可以帮忙在 Java 中创建一个递归函数来实现上述内容吗?
【问题讨论】:
-
到目前为止你有什么?你能想出一种迭代的方法吗(有助于提出一个递归版本)?
-
你做了什么来尝试解决这个问题? StackOverflow 不是您的“做我的功课”网站
-
为什么需要递归实现?
-
嗨 Codor,我正在两个地图中获取数据库值: Map1
和 Map2 。从这两张地图中,我试图创建一个 ArrayList 递归地将元素推入其中。如下所示: List mainList = new ArrayList ; for(Map1 ) { for(Map2 ) { if(map1.id.equals.map2.parentID) { mainList.add(map2.id); // 这将首先在列表中添加 4 个主要节点 (Child-1, Child-2, Child-3) } } } 现在我不知道如何将 Child-1.1 添加到 Child-1 的子字段中递归方式直到 n 次迭代。请指导。