如何在java中创建2D ArrayList?

Rez*_*zan 19 java arraylist

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

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

ArrayList<ArrayList<String>> table = new ArrayList<ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)

要么

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

//table.add??????
Run Code Online (Sandbox Code Playgroud)

请帮我

NIN*_*OOP 42

我想创建一个2D数组,每个单元格都是一个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
Run Code Online (Sandbox Code Playgroud)

  • 表 [0][0] 为空,因此首先需要初始化它。 (2认同)

PSR*_*PSR 39

最好的方法是使用ListinList

List<List<String>> listOfLists = new ArrayList<List<String>>();  
Run Code Online (Sandbox Code Playgroud)


Gab*_*ica 28

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

ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)

应该写

List<List<String>> listOfLists = new ArrayList<List<String>>(size); 
Run Code Online (Sandbox Code Playgroud)

然后,您必须实例化2d数组的所有列

    for(int i = 0; i < size; i++)  {
        listOfLists.add(new ArrayList<String>());
    }
Run Code Online (Sandbox Code Playgroud)

你会像这样使用它:

listOfLists.get(0).add("foobar");
Run Code Online (Sandbox Code Playgroud)

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

然后你必须去dijkstra方式(回答如下).