リンクリストのリンクリストを作成する方法を教えてください。また、事前定義されたLinkedList
(Javaのクラス)メソッドとそのメソッドを定義やその他のadd、get、listIterating操作に使用すると便利です。
4 に答える
別のリストを含め、任意のオブジェクトをリストに入れることができます。
LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();
はオブジェクトLinkedList
のLinkedList
sです。また、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
サブクラス)のサブクラスを作成するか、リストのリストをフィールドとして使用してクラスを作成し、そこにメソッドを追加してリストを操作できます。
さて、私はこのコードを実行しました、そして私はそれを正しくしました
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);
ここで、変数mainlistはLinkedListsのLinkedListであり、変数tempには、最初に格納されたリスト、つまりsublist1の値が含まれます。
セカンダリリストへのアクセスを簡素化することもできます。
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");
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
宣言として。別のリンクリストを(デフォルトで最後に)追加するには、次のようにします。
yourList.add(new LinkedList<YourClass>());
一連の2番目のリンクリストなどに要素を追加するには、次のようにします。
yourList.get(1).add(new YourClass());