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

Posted

技术标签:

【中文标题】如何在 Java 中创建列表列表并添加任何类型的列表? [复制]【英文标题】:How to create a List of Lists and add Lists of any type ti this one in Java? [duplicate] 【发布时间】: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之前实例化列表了吗? 【参考方案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);

【讨论】:

不,您只添加相同类型的列表,我需要将不同类型的列表添加到单个列表中。 你的意思是这样的(见更新) 嗯,是这样的,但如果你能用真正的课程做到这一点,我将不胜感激 这些是真正的课程

以上是关于如何在 Java 中创建列表列表并添加任何类型的列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java中创建数组列表

如何从数组列表中提取项目并对其进行计数,以便从元素及其总计数(正确)在 Java 中创建映射?

如何在 WPF 中创建可编辑的树列表视图?

在 s-s-rS 中创建目录列表类型报告

如何使用 .kv 文件在 kivy 中创建下拉列表

如何在 php 中创建存档列表?