Java 多维数组
多维数组
多维数组是指包含其他数组的数组。
您可以使用它来存储具有行和列的表格数据。
要创建二维数组,请将每一行写在自己的花括号内:
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8} };
这里,myNumbers 有两个数组(两行):
- 第一行:
{1, 4, 2} - 第二行:
{3, 6, 8}
可以这样理解:
访问元素
要访问二维数组的元素,需要两个索引:第一个索引用于行,第二个索引用于列。
记住:数组索引从 0 开始。这意味着行索引 0 是第一行,列索引 0 是第一列。(因此,行索引 1 是第二行,列索引 2 是第三列。)
此语句访问 myNumbers 数组中第二行(索引 1)和第三列(索引 2)的元素:
示例
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8} };
System.out.println(myNumbers[1][2]); // Outputs 8
此示例打印第 0 行、第 1 列的值:
示例
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8} };
System.out.println(myNumbers[0][1]); // Outputs 4
更改元素值
您可以使用相同的双索引表示法(先行,后列)覆盖现有元素:
示例
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8} };
myNumbers[1][2] = 9;
System.out.println(myNumbers[1][2]); // 输出结果为 9 而不是 8。
行和列(长度)
您可以使用 length 获取行数,使用 myNumbers[row].length 获取给定行中的列数:
Example: Sizes
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8, 5, 2} };
System.out.println("Rows: " + myNumbers.length); // 2
System.out.println("Cols in row 0: " + myNumbers[0].length); // 3
System.out.println("Cols in row 1: " + myNumbers[1].length); // 5
注意:请注意,行的长度可以不同——在本例中,第二行的元素比第一行多,这在 Java 中完全有效。
遍历多维数组
使用一个 for 循环嵌套另一个 for 循环,逐行访问每个元素:
示例
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8, 5, 2} };
for (int row = 0; row < myNumbers.length; row++) {
for (int col = 0; col < myNumbers[row].length; col++) {
System.out.println("myNumbers[" + row + "][" + col + "] = " + myNumbers[row][col]);
}
}
或者在两层都使用for-each循环,许多人觉得这样更容易阅读:
示例
int[][] myNumbers = { {1, 4, 2}, {3, 6, 8, 5, 2} };
for (int[] row : myNumbers) {
for (int num : row) {
System.out.println(num);
}
}

