使用Java中的多维数组的Foreach

Axi*_*ive 3 java

我读了Java:The Complete Reference(第9版).在字符5:控制语句 - 迭代多维数组部分写:

for的增强版本也适用于多维数组.但请记住,在Java中,多维数组由数组数组组成.(例如,二维数组是一维数组的数组.)这在迭代多维数组时很重要,因为每次迭代都会获得下一个数组,而不是单个元素.此外,for循环中的迭代变量必须与所获得的数组类型兼容.例如,在二维数组的情况下,迭代变量必须是对一维数组的引用.通常,当使用for-each迭代N维的数组时,获得的对象将是N-1维的数组.要了解这一点的含义,请考虑以下程序.它使用嵌套for循环以行顺序从第一个到最后一个获取二维数组的元素.

我无法理解为什么"迭代N维的数组,获得的对象将是N-1维的数组".这是真的吗?

ars*_*jii 8

的阵列Ñ尺寸是真的(阵列Ñ -1)维阵列.因此,当我们遍历N维数组时,我们正在遍历其所有组成(N -1)维数组,如图所示.

例如,考虑一个二维数组:

int[][] array = {{1,2,3}, {4,5,6}};
Run Code Online (Sandbox Code Playgroud)

这实际上是一维数组:{1,2,3}{4,5,6}.