好的,我试图遍历一个二维数组以从一个数组复制到另一个数组。我可以使用以下方法分配第一部分中的整数:
array1[i] = array2[i];
但我不能对另一部分做同样的事情,例如:
array1[][j] = array2[][j]; //this doesn't compile
或者
array1[0]j = array2[0][j]; //creates run time error
我怎样才能具体复制第二部分而不是第一部分?
最佳答案
二维数组没有“第一部分”和“第二部分”。有i
行和 j
声明为 x[j][i]
的数组中的列.
现在是技术方面:
Java 没有真正的二维数组;它有数组的数组,所以 x[rows][cols]
是一个数组 x
的 rows
cols
的数组元素(即 x[rows]
是一个数组数组)。
所以当你执行 array1[i] = array2[i]
,您正在复制对第二个数组中列数组的引用。
但是没有办法做那个的镜像——你不能复制对行的引用但保留列值,因为行数组是 x
.
如果您正在寻找“深拷贝”,您可以使用以下方法手动完成:
for (int row = 0; row < array1.length; row++) {
for (int col = 0; col < array1[row].length; col++) {
array2[row][col] = array1[row][col];
}
}
关于java - 如何访问二维数组的第二部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5501809/