2013-01-24 84 views
2

我正在处理数据库上的一个表。这些列是:id,name,parent_id (parent_id将是表上的一个id。如果parent_id为null,则该记录是父级)。使用java中的递归循环复制树结构数据并创建相同的树结构数据

通过递归复制和创建相同记录的最佳方法是什么从递归循环回路,所以我可以创建相同的树形结构,因为它是:

  • 项目
    • 物品1
      • 项目1.1
        • 项1.1.1
        • 项1.1.2
      • 项1.2
    • 项目2
      • 项目2.1
        • 项2.1.1
      • 项2.2
    • 项目3

等,它是像第n个级别。

+2

你尝试过什么。 ? – Arpit

+0

http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=17225&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D17225 – dinesh707

回答

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 
{ 
    ... 
}