如何在 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(List col : listOfLists )? 确实 :) 随意编辑 这只是错误的,你不能这样修改listOfLists结构!您正在遍历一个空结构,因此 for 将不执行任何操作,随后的 get 将引发异常。 确实 :) 它需要一个好的旧的 您好,我看到您在 ( ) 内指定了大小,即 ArrayList 在外侧的大小。我应该怎么做才能指定外部ArrayList中每个内部ArrayList的大小?【参考方案5】:

这可以通过创建List数据结构的对象来实现,如下

列表列表 = new ArrayList();

欲了解更多信息,请参阅此链接

How to create a Multidimensional ArrayList in Java?

【讨论】:

以上是关于如何在 java 中创建一个 2D ArrayList? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何阅读键盘输入以在 WPF 中创建 2D 游戏?

如何在 Qt 中创建 3D 对象模型的 2D 切片?

如何在 cocos2d 中创建色相(饱和度)选择器

如何在 C++ 中从现有 2D 向量中创建具有特定列的新向量

如何在swift中创建固定大小的2d数组

如何在 Java Swing 中创建投影、内发光和外发光?