2013-01-24 80 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 
{ 
    ... 
}