我想创建一个每个单元格为ArrayList
的二维数组!
我认为这个定义,但我不能给他们添加任何东西 这些定义是真的吗?!
ArrayList<ArrayList<String>> table = new ArrayList<ArrayList<String>>();
或
ArrayList[][] table = new ArrayList[10][10];
//table.add??????
请帮帮我
答案 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();
有关更多信息,请参阅此链接