如何在java中创建2D ArrayList?

时间:2013-06-06 08:01:16

标签: java arraylist

我想创建一个每个单元格为ArrayList的二维数组!

我认为这个定义,但我不能给他们添加任何东西 这些定义是真的吗?!

ArrayList<ArrayList<String>> table = new ArrayList<ArrayList<String>>();

ArrayList[][] table = new ArrayList[10][10];

//table.add??????

请帮帮我

5 个答案:

答案 0 :(得分:38)

我想创建一个2D数组,每个单元格都是一个ArrayList!

如果您想创建ArrayList的2D 数组。那么您可以这样做:

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

答案 1 :(得分:35)

最好的方法是在List

中使用List
List<List<String>> listOfLists = new ArrayList<List<String>>();  

答案 2 :(得分:24)

首先,当您在java中声明变量时,即使在实例化时指定了实现,也应该使用Interfaces声明它

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

但是如果你真的想“创建一个2D数组,每个单元格都是一个ArrayList!”

然后你必须采用dijkstra方式(以下回答)。

答案 3 :(得分:3)

ArrayList<String>[][] list = new ArrayList[10][10];
list[0][0] = new ArrayList<>();
list[0][0].add("test");

答案 4 :(得分:2)

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

List list = new ArrayList();

有关更多信息,请参阅此链接

How to create a Multidimensional ArrayList in Java?