如何在Java中创建列表列表并添加任何类型的列表?

时间:2014-07-12 03:44:45

标签: java list

我想知道如何创建一个可以包含其他列表的列表,这些列表本身可能包含任何类型的对象。

我尝试了这个,但它不起作用:

List<List<Object>> lists;// Also tried this List<List<? extends Object>> listados;
    List<Integer> code;
    List<String> name;
    lists.add(1, code);
    lists.add(2, name);

3 个答案:

答案 0 :(得分:1)

你需要这样的东西

    List<List<? extends Animal>> lists = new ArrayList<>();

    List<Person> listOne = new ArrayList<>();
    listOne.add(new Person("abc"));
    listOne.add(new Person("def"));

    List<Dog> listTwo = new ArrayList<>();
    listTwo.add(new Dog("abc"));
    listTwo.add(new Dog("def"));

    lists.add(listOne);
    lists.add(listTwo);

答案 1 :(得分:0)

你也可以这样做,

ArrayList<ArrayList> lists = new ArrayList<ArrayList>();

ArrayList<Integer> l = new ArrayList<Integer>();
l.add(1);
l.add(2);

ArrayList<String> l1 = new ArrayList<String>();
l1.add("hi");
l1.add("hello");

lists.add(l);
lists.add(l1);

for(ArrayList al : lists){

    for(Object o : al){
        System.out.println(o);
    }
}

答案 2 :(得分:-1)

以上答案基本上是正确的。我只是略微修改它。

List<List<Object>> lists = new ArrayList<>();

List<Integer> listOne = new ArrayList<>();
listOne.add(1);
listOne.add(2);

List<String> listTwo = new ArrayList<>();
listTwo.add("three");
listTwo.add("four");

lists.add(listOne);
lists.add(listTwo);