2

我正在处理数据库上的一张表。列是:id、name、parent_id(parent_id 将是表上的 id。如果 parent_id 为空,则记录是父记录。)

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

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

等等,就像第n级。

4

1 回答 1

0

你不需要使用递归,如果你不使用,代码会更清晰。

首先,结果集需要按idand排序,然后您只需使用 a作为索引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 
{
  ...
}
于 2013-01-24T09:59:52.463 回答