我的任务是制作一个与多值数据库接口(interface)的程序。我收到一个字符串中的整个记录,其中包含值和子值的分隔符。从那里我将数据分成一个二维数组。这是其中的一个片段(注意不同的长度):
0 1 2
+------------------------------------+
0 | 442 | | |
1 | C | | |
2 | | | |
3 | N | | |
4 | LAND | | |
5 | 05412300 | 05412307 | |
6 | BEARING | | |
7 | BRAND1 | BRAND2 | BRAND3 |
8 | 12 | | |
+------------------------------------+
现在我一直使用 ArrayLists 而不是 Arrays,因为我知道这是最佳实践。现在我想知道使用 2d ArrayList 是否也有好处。我看过一些例子,但我不太明白如何在需要时获取这些值。如果我要这样做:
String[][] cheese = {
{"chedder", "swiss", "pepperjack"},
{"sliced", "cubed", "block"}
};
String myFavorite = cheese[0][2];
myFavorite 将是 pepperjack,但我如何使用 2d ArrayList 做到这一点?我发现的示例对我没有太大帮助。我确实知道我将接收的数据的确切行数(但不是列数),并且行号不会改变,所以也许常规二维数组是最佳做法?
最佳答案
您的数据看起来不属于二维数组或列表。如果是我,我会创建对数据有意义的数据结构。如果您必须使用列表列表:
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);
关于Java 2d Array 还是 2d ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125413/