繁体   English   中英

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

[英]Copy tree structure data and create same tree structure data using recursive loop in java

我正在处理数据库中的一张表。 列为:id,名称,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级。

您不需要使用递归,如果没有,则代码将更加清晰。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM