0

データベース テーブルでは、datatableの下に示すように、親フォルダーと子フォルダーの関係を維持しています。その関係を使用して、jsp Web ページに階層構造を作成する必要があります。その構造を表示するには、http://myfaces.apache.org/tomahawk t:tree2 コンポーネントを使用しました。私の要件は、データベースからデータをフェッチし、その関係を Java 変数に格納する必要があることです。そのためには、ツリー構造または(階層構造)をJava変数に格納するための再帰的手法が必要です。答えを見つけるのを手伝ってください。

データ表: ここに画像の説明を入力

ディレクトリ構造の階層ビュー: ここに画像の説明を入力

ありがとうございました

4

3 に答える 3

0

Java でツリー構造を作成する方法は、他の言語とほとんど同じです。Data Structures and Algorithmsを読んでください。

どのように使用するかによって、データ構造は異なります。上向きにトラバースするのが簡単な完全に良い方法は次のとおりです。

class Node
{
   private Node parent;
   private int value;
}

リーフ (またはツリー全体を検索可能にする場合はノード) でのハッシュ ルックアップを併用すると、任意のファイルへのパスとそのような構造を使用したパスを見つける完璧な方法が得られます。ノードがあり、その子を見つけたい場合、この構造は使用できません。次に、回答の 1 つとして既に示されている従来のツリーを使用できます。

于 2013-10-16T10:36:12.237 に答える
0

子ノードのリストと isdirectory などの他の必要な状態変数を持つ Node クラスを作成します。「Java のツリーのようなデータ構造」で SO を再度検索するように依頼します。これが役立つことを願っています。

于 2013-10-16T10:00:46.967 に答える
0

再帰を使用して繰り返し処理できます。

void processChilds(Item child) {
List<Item> childs = selectChilds(child);
    for(Item i: childs) {
       //do smth
       processChilds(i);
    }
}

または、一度にすべてのレコードを選択してから、それを独自のオブジェクト構造に解析する必要があります。HashMap または独自のツリーのような構造にすることができます。

class Item {
  List<Item> childs;
}

ツリーが本当に深い場合を除き、最初のものを使用することをお勧めします (コーディングが簡単なので)。

于 2013-10-16T10:04:01.773 に答える