use*_*309 2 java multidimensional-array
好吧我试图循环通过二维数组从一个复制到另一个.我可以使用以下方法分配第一部分的整数:
array1[i] = array2[i];
Run Code Online (Sandbox Code Playgroud)
但我不能对其他部分做同样的事情,例如:
array1[][j] = array2[][j]; //this doesn't compile
Run Code Online (Sandbox Code Playgroud)
要么
array1[0]j = array2[0][j]; //creates run time error
Run Code Online (Sandbox Code Playgroud)
我怎样才能明确地复制第二部分而不是第一部分?
没有二维数组的"第一部分"和"第二部分".声明了数组中的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];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21602 次 |
| 最近记录: |