java - 如何访问二维数组的第二部分

标签 java multidimensional-array

好的,我试图遍历一个二维数组以从一个数组复制到另一个数组。我可以使用以下方法分配第一部分中的整数:

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]是一个数组 xrows 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/

相关文章:

java - 如何在 JLabel 中显示队列?

php - 将值插入多维数组,但只插入了 1

c++ - 检查多维数组C++的内存位置

java - 我如何判断是否创建了任何mockito对象

java - 使用 JDBC 连接器 5.1 从 Java 读取/写入 MySQL 中的 UTF-8 数据时出现问题

java - Ubuntu 10.4 上的 Pentaho BI 服务器错误 Catalina

c - 我如何只交换一个而不是两个值?

java - 如何使用gson将json转换为字符串

c++ - 二维数组分配问题

php foreach 循环多维数组有问题