我正在处理数据库中的一张表。这些列是:id、name、parent_id (parent_id 将是表上的一个 id。如果 parent_id 为 null,则该记录是父记录。)
通过递归循环的递归循环复制和创建相同记录的最佳方法是什么,这样我就可以创建相同的树结构:
- 项目
- 项目 1
- 项目 1.1
- 项目 1.1.1
- 项目 1.1.2
- 项目 1.2
- 项目 1.1
- 项目 2
- 项目 2.1
- 项目 2.1.1
- 项目 2.2
- 项目 2.1
- 第 3 项
- 项目 1
等等,就像第 n 级。
最佳答案
你不需要使用递归,如果你不使用,代码会更清晰。
首先,结果集需要按id
排序和 parent_id
,然后您只需使用 java.util.Map
遍历结果集作为索引,像这样:
Map<Object, Item> items = new HashMap<Object, Item>();
if (resultSet.next())
{
Item root = createItem(resultSet);
items.put(root.getId(), root);
while (resultSet.next())
{
Item item = createItem(resultSet);
items.put(item.getId(), item);
Item parent = items.get(item.getParentId());
if (parent != null)
{
parent.addChild(item);
}
else
{
...
}
}
return root;
}
else
{
...
}
关于java - 在java中使用递归循环复制树结构数据并创建相同的树结构数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498193/