【问题标题】:How to create a List of Lists and add Lists of any type ti this one in Java? [duplicate]如何在 Java 中创建列表列表并添加任何类型的列表? [复制]
【发布时间】:2014-09-02 18:28:51
【问题描述】:

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

我试过了,但没用:

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

【问题讨论】:

  • 你在add之前实例化列表了吗?

标签: java list


【解决方案1】:

你也可以这样做,

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

【讨论】:

  • 我几乎不认为使用原始类型绕过泛型可以回答问题
  • 你能解释一下使用 ArrayList 的好处吗?
  • @NonExistent 使用这种方式没有优势,不如program to interface
【解决方案2】:

以上答案基本正确。我只是稍微修改一下。

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

【讨论】:

  • 允许Object 不是更严格的类型化做法,您应该尽可能地限制类型
  • 对于第一行,可以这样写:List> 列表 = 新的 ArrayList();
  • 它甚至无法编译。 Test.java:16: 错误:找不到合适的方法 add(List) lists.add(listOne);
  • 这对我不起作用...
  • List&lt;List&lt;Object&gt;&gt;更改为List&lt;List&lt;? extends Object&gt;&gt;
【解决方案3】:

你需要这样的东西

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

【讨论】:

  • 不,您只添加相同类型的列表,我需要将不同类型的列表添加到单个列表中。
  • 你的意思是这样的(见更新)
  • 嗯,是这样的,但如果你能用真正的课程做到这一点,我将不胜感激
  • 这些是真正的课程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2012-09-26
  • 1970-01-01
  • 2017-09-15
  • 2011-08-20
  • 2017-10-08
相关资源
最近更新 更多