Java 2d Array 还是 2d ArrayList?

And*_*rew 2 java arrays arraylist multidimensional-array

我的任务是制作一个与多值数据库接口的程序。我在一个字符串中接收整个记录,其中包含值和子值的分隔符。从那里我将数据拆分为二维数组。这是其中的一个片段(注意不同的长度):

        0           1           2
   +------------------------------------+
0  | 442        |           |           |
1  | C          |           |           |
2  |            |           |           |
3  | N          |           |           |
4  | LAND       |           |           |
5  | 05412300   | 05412307  |           |
6  | BEARING    |           |           |
7  | BRAND1     | BRAND2    | BRAND3    |
8  | 12         |           |           |
   +------------------------------------+
Run Code Online (Sandbox Code Playgroud)

现在我一直使用 ArrayLists 而不是 Arrays 因为我知道这是最佳实践。现在我想知道使用 2d ArrayList 是否也有好处。我查看了一些示例,但不太明白如何在需要时获取值。如果我要这样做:

String[][] cheese = {
    {"chedder", "swiss", "pepperjack"},
    {"sliced", "cubed", "block"}
};
String myFavorite = cheese[0][2];
Run Code Online (Sandbox Code Playgroud)

myFavorite 将是pepperjack,但是我将如何使用 2d ArrayList 做到这一点?我发现的例子对我没有太大帮助。我确实知道我将接收的数据的确切行数(但不是列数)并且行号不会改变,所以也许常规的二维数组是最佳实践?

Mik*_*e B 5

您的数据看起来不属于二维数组或列表。如果是我,我会创建对数据有意义的数据结构。如果您必须使用列表列表:

List<List<String>> cheese = new ArrayList<List<String>>();
cheese.add(Arrays.asList("cheddar", "swiss", "pepperjack"));
cheese.add(Arrays.asList("sliced", "cubed", "block"));

String myFavorite = cheese.get(0).get(2);
Run Code Online (Sandbox Code Playgroud)