【问题标题】:Copy tree structure data and create same tree structure data using recursive loop in java在java中使用递归循环复制树结构数据并创建相同的树结构数据
【发布时间】:2013-01-24 17:59:52
【问题描述】:

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

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

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

等等,就像第n级。

【问题讨论】:

标签: java


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 2013-12-20
    • 2013-10-24
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 2019-07-11
    • 2018-11-19
    相关资源
    最近更新 更多