2012-06-15 8 views
6

リンクリストのリンクリストを作成する方法を知りたいと思います。また、あらかじめ定義されたLinkedList(Javaからのクラス)とそのメソッドが、定義、およびその他のadd、get、listIterating操作に使用される場合に役立ちます。Javaでリンクされたリストのリンクリスト

+0

基本的な方法でユーザー定義のリンクリストクラスのコードを取得すると、ありがとう –

+0

このようにあなたの投稿にコメントする必要はありません。元の質問はいつでも編集できます。 – BlackVegetable

答えて

21

リスト内の任意のオブジェクトを、別のリストを含めて配置できます。

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

YourClassオブジェクトのLinkedListLinkedListのsです。それは簡単な方法since Java 7にも書くことができる:

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

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

:単一サブリストを追加すること

あなたは、各サブリストを作成する必要があり、ここに

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

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

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

あなたは、この(サブリストの項目はサブリストでグループ化されている)のように、それを反復することができます:あなたがリストのこのリストに特定のメソッドを追加したい場合は、あなたがLinkedList(またはListのサブクラスを作成することができます

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

、または他のListサブクラス)、リストのリストをフィールドとして作成し、そのリストを操作するメソッドを追加することができます。

+0

とこのリストのリストを反復処理する方法は? – roottraveller

+0

@roottraveller簡単な例を追加しました:)あなたが何をしたいかによって、これを行う方法はたくさんあります。 – Autar

0
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>(); 

宣言として。さて、私はこれをやった

yourList.get(1).add(new YourClass()); 
2

:(デフォルトでは最後に)別のリンクリストを追加するには、シリーズ第2リンクリストを言うことができますする要素を追加するには

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

を行うだろうコードと私は右ここで、変数mainlist

  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); 

は、Liでそれを持っていますLinkedLists変数一時が値にsublist1すなわち記憶された第1のリストが含まれています。..

1

のnkedListあなたも、例えば、二次リストへのアクセスを簡素化することができます

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"); 
関連する問題