列表中的任意数量的列表java

时间:2012-09-08 16:09:16

标签: java

有没有办法可以在java的列表中添加任意数量的列表?

例如:

List<List<T>, List<T>, List<T>>

我知道这是不正确的语法,但我想做那样的事情。

3 个答案:

答案 0 :(得分:6)

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

如果没有关于用例的更多信息或者为什么要这样做,我就不能更具体了。

答案 1 :(得分:1)

如果你的意思是任意嵌套的列表列表列表......你可能想要使用树形结构,如下所示:

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

答案 2 :(得分:0)

假设您有列表list1list2,...,listN,您可以通过多种方式解决此问题:

为n元组创建自己的类: 此方法允许您将元组限制为特定大小,而无需重新实现CollectionList类的方法。

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);
相关问题