トップ 差分 一覧 ソース ヘルプ RSS ログイン

TreeNode

TreeNode

Treeのモデルの実装を提供します。

TreeNodeは階層化されたデータ表現(例えばディレクトリとサブディレクトリとファイルのような)を保持するのに利用されます。

ノードは一意なIDを必ず持つ必要があります。もしこれを持たない場合、ツリーの動作は不安定なものになります。

各ノードは、ユーザーが定義したObject型の値を保持します。

ノードはその親ノードへの参照と、子ノードへの参照を持ちます。

リーフノードが新規に子ノードを追加することをサポートしているか否かの、2種類のリーフノードが現在の実装では提供されています。子ノードの追加が可能なリーフノードのひとつの例がディレクトリです。ディレクトリが空(つまりリーフノード)ということもありますが、ファイルやサブディレクトリを子ノードとして追加することが可能です。逆に追加できないタイプの例がファイルになります。ファイルはその子要素としてファイルやサブディレクトリを追加することができません。既定では新しく作成されたノードは子ノードの追加をサポートしています。子ノードのサポートを不可にするには、適切なコンストラクタを使用するか、setChildrenSupported(boolean)を使用します。

注意: 各TreeNodeが、ツリーの中で一意なIDを持たなければいけないので、コンストラクタでの指定がない場合には、既定のIDが生成されます。IDはRandomのインスタンスによって生成されます。現在の実装では、random.nextLong()を使いLong値を生成しています。最大で2の64乗の数値が生成可能ということになります。