1

各ノードがクラス A またはクラス A のコレクションであるコレクションがあります。

これは、クラス A のコレクション内の各ノードがクラス A またはクラス A のコレクションである可能性があるという点でも再帰的です。

私は現在、リストを使用してから、オブジェクトをチェックして、それがクラス A であるかクラス A のリストであるかを確認していますが、ジェネリックを使用する目的を無効にしているようです。もっと木のような構造が必要だと思います。考え?

4

4 に答える 4

5

コンポジットデザインパターンを見てください。

于 2012-09-14T13:29:17.580 に答える
2

ジェネリック型をインスタンス化すると、同種の型がコレクションに格納されます。現実の世界でこれを行う方法は、クラス A と B を結合する共通の媒体、コンテナー、またはインターフェイスを確立することです。インターフェイスを使用して、これらのオブジェクトを操作します。

あるいは、オブジェクトをデフォルトでリストとして扱うこともできます。私が何を意味するか分かりますか?

于 2012-09-14T13:31:28.947 に答える
1

またはWrapper<ClassA>のインスタンスを保持できるクラス ( ) を作成することを検討してください。次に、あなたの内側を作りますClassAListListsListsList<Wrapper<ClassA>>

于 2012-09-14T13:34:38.870 に答える
0

以下のようにクラスノードを定義する必要があります

    public class Node {
       List<Node> children = new ArrayList<Node>();
    }
于 2012-09-14T13:34:14.770 に答える