如何在 java 中创建一个 2D ArrayList? [复制]
Posted
技术标签:
【中文标题】如何在 java 中创建一个 2D ArrayList? [复制]【英文标题】:How to create an 2D ArrayList in java? [duplicate] 【发布时间】:2013-06-02 03:28:00 【问题描述】:我想创建一个二维数组,每个单元格都是一个ArrayList
!
我考虑了这个定义,但我不能给它们添加任何东西 这些定义是真的吗?!
ArrayList<ArrayList<String>> table = new ArrayList<ArrayList<String>>();
或
ArrayList[][] table = new ArrayList[10][10];
//table.add??????
请帮帮我
【问题讨论】:
这会帮助你***.com/questions/10768170/… 嗨。问题的标题与其内容不一致。您想要 ArrayList 的 2D 数组(最终类似于 3D)还是 2D ArrayList(ArrayList 的 ArrayList)?如果你问这个作为你的作业,你能写出最初的问题吗?最后,你绝对需要声明 ArrayList。你可以使用 list intead 吗? 哦,您在问题的第一部分声明了 String 的 2D ArrayList。您需要将 String 放入内部 ArrayList 是否正确? 【参考方案1】:最好的方法是在List
中使用List
:
List<List<String>> listOfLists = new ArrayList<List<String>>();
【讨论】:
【参考方案2】:我想创建一个每个单元格都是一个 ArrayList 的二维数组!
如果你想创建一个ArrayList
的二维数组。那么你可以这样做:
ArrayList[][] table = new ArrayList[10][10];
table[0][0] = new ArrayList(); // add another ArrayList object to [0,0]
table[0][0].add(); // add object to that ArrayList
【讨论】:
仅当arrayListObject
不是ArrayList
对象时才会出现编译器错误。
表 [0][0] 为空,因此您需要立即对其进行初始化。
除了 null 方面,这是我们在这里看到的最好的解决方案。 +1
谢谢,忽略了。
实际上,我收到一个警告unchecked call to add(e) as a member of the raw type
没有为内部数组列表指定数据类型,该怎么做?【参考方案3】:
ArrayList<String>[][] list = new ArrayList[10][10];
list[0][0] = new ArrayList<>();
list[0][0].add("test");
【讨论】:
【参考方案4】:首先,当你在java中声明一个变量时,你应该使用接口来声明它,即使你在实例化它时指定了实现
ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();
应该写
List<List<String>> listOfLists = new ArrayList<List<String>>(size);
然后你必须实例化你的二维数组的所有列
for(int i = 0; i < size; i++)
listOfLists.add(new ArrayList<String>());
你会像这样使用它:
listOfLists.get(0).add("foobar");
但是如果你真的想“创建一个每个单元格都是一个ArrayList的二维数组!”
那你必须去dijkstra way。
【讨论】:
不应该是 for(ListlistOfLists
结构!您正在遍历一个空结构,因此 for
将不执行任何操作,随后的 get
将引发异常。
确实 :) 它需要一个好的旧的
您好,我看到您在 ( ) 内指定了大小,即 ArrayList 在外侧的大小。我应该怎么做才能指定外部ArrayList中每个内部ArrayList的大小?【参考方案5】:
这可以通过创建List数据结构的对象来实现,如下
列表列表 = new ArrayList();
欲了解更多信息,请参阅此链接
How to create a Multidimensional ArrayList in Java?
【讨论】:
以上是关于如何在 java 中创建一个 2D ArrayList? [复制]的主要内容,如果未能解决你的问题,请参考以下文章