java 中如何遍历二维数组

java 中如何遍历二维数组

作者:Joshua Lee发布时间:2026-02-14阅读时长:0 分钟阅读次数:3

用户关注问题

Q
怎样通过增强型 for 循环遍历 Java 中的二维数组?

我想使用增强型 for 循环遍历二维数组,该怎么做?是否能举个示例说明如何访问二维数组中的每个元素?

A

使用增强型 for 循环遍历二维数组的示例

在 Java 中,可以利用增强型 for 循环(也称为 for-each 循环)来遍历二维数组。二维数组其实是一个数组的数组,因此外层循环遍历每个一维数组,内层循环遍历该一维数组中的元素。示例:

int[][] arr = {{1, 2}, {3, 4}, {5, 6}};
for (int[] row : arr) {
for (int num : row) {
System.out.println(num);
}
}
这段代码将依次输出数组 arr 中的所有元素。

Q
使用传统的 for 循环遍历二维数组时应该注意什么?

使用传统的 for 循环访问二维数组时,有哪些细节需要关注?如何避免数组越界等常见错误?

A

传统 for 循环遍历二维数组的注意事项

二维数组使用传统 for 循环时,应该确保循环边界正确。外层循环通常遍历行数,内层循环遍历列数。例如,假设二维数组名为 arr,则代码结构如下:
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
这里 arr.length 表示行数,arr[i].length 表示第 i 行的列数。注意不正确使用列数可能导致数组越界,尤其在列数不一致的“锯齿形”数组中更应小心。

Q
有没有简单方法将二维数组转换为一维数组方便遍历?

如果我想一次性遍历二维数组所有元素,有没有办法先将二维数组“扁平化”为一维数组?

A

将二维数组转换为一维数组的方法

可以通过遍历二维数组把元素逐一复制到一个新的一维数组中,实现数组扁平化。例如:
int[][] arr = {{1, 2}, {3, 4}, {5, 6}};
int totalLength = 0;
for (int[] row : arr) {
totalLength += row.length;
}
int[] flatArray = new int[totalLength];
int index = 0;
for (int[] row : arr) {
for (int num : row) {
flatArray[index++] = num;
}
}
这样,flatArray 中依次存储网格中所有元素,遍历时只需单层循环即可访问。