我正在处理数据库中的一个表。列是:id,name,parent_id (parent_id将是表中的id。如果parent_id为null,则记录是父级。)
通过递归循环的递归循环复制和创建相同记录的最佳方法是什么,这样我就可以创建相同的树结构:
答案 0 :(得分:0)
您不需要使用递归,如果不这样做,代码会更清晰。
首先,结果集需要由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
{
...
}