Javaのリスト内に任意の数のリストを追加する方法はありますか?
例えば:
List<List<T>, List<T>, List<T>>
これが間違った構文であることは知っていますが、そのようなことをしたいと思います。
Javaのリスト内に任意の数のリストを追加する方法はありますか?
例えば:
List<List<T>, List<T>, List<T>>
これが間違った構文であることは知っていますが、そのようなことをしたいと思います。
List<List<T>>
任意の数を保持しますList<T>
。例えば:
List<List<T>> listOfLists = new ArrayList<List<T>>();
for (int i = 0; i < 10; i++) { // 10 is arbitrary here; just an example
listOfLists.add(new ArrayList<T>());
}
ユースケースや、なぜこれを実行したいのかについての詳細がなければ、これ以上具体的にすることはできません。
リストのリストのリストの任意にネストされたリストを意味する場合...代わりに、次のようなツリー構造を使用することをお勧めします。
class Tree<T> {
T element;
List<Tree<T>> children;
}
または、中間レイヤーと値を分離する場合は、次のようにします。
interface Tree<T> {
}
class TreeNode<T> implements Tree<T> {
List<Tree<T>> children;
}
class TreeLeaf<T> implements Tree<T> {
T element;
}
list1
あなたがリストを持っていると仮定すると、、、list2
... 、、あなたがlistN
これについて行くことができる複数の方法があります:
nタプル用に独自のクラスを作成する:Collection
この方法では、またはList
クラス
のメソッドを再実装しなくても、タプルを特定のサイズに制限できます。
public class ThreeTuple<A, B, C> {
private final A first;
private final B second;
private final C third;
public ThreeTuple(A first, B second, C third) {
this.first = first;
this.second = second;
this.third = third;
}
public A getFirst() {
return first;
}
public B getSecond() {
return second;
}
public C getThird() {
return third;
}
}
public class OtherClass {
public static void main(String[] args) {
new ThreeTuple(list1, list2, list3);
}
}
n個のリストをリストに追加する: この方法は間違いなく最も簡単ですが、リストを制限するものではありません。
List<List<T>> lists = new ArrayList<T>();
lists.add(list1);
lists.add(list2);
lists.add(list3);