复制树结构数据并使用java中的递归循环创建相同的树结构数据

时间:2013-01-24 09:43:51

标签: java

我正在处理数据库中的一个表。列是:id,name,parent_id (parent_id将是表中的id。如果parent_id为null,则记录是父级。)

通过递归循环的递归循环复制和创建相同记录的最佳方法是什么,这样我就可以创建相同的树结构:

    • ITEM1
      • 项目1.1
        • 项目1.1.1
        • 项目1.1.2
      • 第1.2项
    • 第2项
      • 项目2.1
        • 项目2.1.1
      • 第2.2项
    • 项目3
等等,它就像是第n级。

1 个答案:

答案 0 :(得分:0)

您不需要使用递归,如果不这样做,代码会更清晰。

首先,结果集需要由idparent_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 
{
  ...
}