8

リンクリストのリンクリストを作成する方法を教えてください。また、事前定義されたLinkedList(Javaのクラス)メソッドとそのメソッドを定義やその他のadd、get、listIterating操作に使用すると便利です。

4

4 に答える 4

25

別のリストを含め、任意のオブジェクトをリストに入れることができます。

LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();

はオブジェクトLinkedListLinkedListsです。また、Java 7以降YourClass、簡略化された方法で記述できます。

LinkedList<LinkedList<YourClass>> list = new LinkedList<>();

そのようなリストを操作する非常に簡単な例:

次に、各サブリストを作成する必要があります。ここでは、単一のサブリストを追加します。

list.add(new LinkedList<YourClass>());

次に、コンテンツオブジェクトを作成します。

list.get(sublistIndex).add(new YourClass());

次に、次のように繰り返し処理できます(サブリストのアイテムはサブリストごとにグループ化されます)。

for(LinkedList<YourClass> sublist : list) {
    for(YourClass o : sublist) {
        // your code here
    }
}

このリストのリストに特定のメソッドを追加する場合は、LinkedList(またはList、またはその他のListサブクラス)のサブクラスを作成するか、リストのリストをフィールドとして使用してクラスを作成し、そこにメソッドを追加してリストを操作できます。

于 2012-06-15T12:13:06.047 に答える
2

さて、私はこのコードを実行しました、そして私はそれを正しくしました

          java.util.LinkedList mainlist = new java.util.LinkedList();

          java.util.LinkedList sublist1 = new java.util.LinkedList();
          sublist1.add(object1);
          sublist1.add(object2);
          sublist1.add(object3);

          java.util.LinkedList sublist2=new java.util.LinkedList();
          sublist2.add(1);
          sublist2.add(2);

          mainlist.add(sublist1);
          mainlist.add(sublist2);

          // To retrieve the sublist1 from mainlist...........
          java.util.LinkedList temp = (java.util.LinkedList)mainlist.get(0);

ここで、変数mainlistLinkedListsのLinkedListであり、変数tempには、最初に格納されたリスト、つまりsublist1の値が含まれます。

于 2012-06-16T17:56:21.597 に答える
1

セカンダリリストへのアクセスを簡素化することもできます。

    final List<List<String>> lists = new LinkedList<List<String>>() {
        @Override
        public List<String> get(final int index) {
            while (index >= size()) {
                add(new LinkedList<>());
            }
            return super.get(index);
        }
    };

このコードは、新しいLinkedListを自動的に外部リストに追加します。このコードを使用すると、後で簡単に単一の値を追加できます。

lists.get(2).add("Foo");
于 2016-10-29T12:24:07.150 に答える
0
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();

宣言として。別のリンクリストを(デフォルトで最後に)追加するには、次のようにします。

yourList.add(new LinkedList<YourClass>());

一連の2番目のリンクリストなどに要素を追加するには、次のようにします。

yourList.get(1).add(new YourClass());
于 2012-06-15T12:56:38.357 に答える