2

データベース上の1つのテーブルを扱っています。列は次のとおりです。id、name、parent_id(parent_idはテーブル上のIDになります。parent_idがnullの場合、レコードは親になります。)

再帰ループから再帰ループを介して同じレコードをコピーして作成し、それと同じツリー構造を作成できるようにするための最良の方法は何でしょうか。

  • アイテム
    • item1
      • アイテム1.1
        • アイテム1.1.1
        • 項目1.1.2
      • アイテム1.2
    • アイテム2
      • 項目2.1
        • アイテム2.1.1
      • 項目2.2
    • item3

などとそれはn番目のレベルのようなものです。

4

1 に答える 1

0

再帰を使用する必要はありません。使用しない場合、コードはより明確になります。

id最初に結果セットをとで並べ替える必要があります。次に、次のように、インデックスとして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 に答える