通过引用将较小的2d数组分配给较大的2d数组

时间:2019-01-25 23:16:57

标签: java multidimensional-array reference

在Java中,数组值不是顺序存储在内存中吗?有什么方法可以将数组的内存地址分配给另一个变量?

这是我正在处理的代码:

public static void main(String[] args){

    String[][] board = new String[15][27];
    String[][] X     = new String[5][9];
    String[][] Y     = new String[5][9];

    X[1][3] = "X";
    X[1][5] = "X";
    X[2][4] = "X";
    X[3][3] = "X";
    X[3][5] = "X";

    Y[1][3] = "O";
    Y[1][4] = "O";
    Y[1][5] = "O";
    Y[2][3] = "O";
    Y[2][5] = "O";
    Y[3][3] = "O";
    Y[3][4] = "O";
    Y[3][5] = "O";

    board = X;

    System.out.println("\u000C");

    for (int i = 0;i < 15;i++){
        for (int j = 0;j < 27; j++){
            System.out.print(board[i][j]);
        }
        System.out.println();
    }


}

显然是

  

board = x

不起作用。但是,是否可以将较小数组的地址分配给较大数组的某个部分,还是必须逐个元素地进行此操作?

1 个答案:

答案 0 :(得分:1)

虽然您可以将内存地址分配给另一个变量,但它只是对同一阵列的另一个引用。如果要将数据移至更大的阵列,则必须将其复制。

for (int i = 0; i < 5; i++){
    for (int j = 0; j < 9; j++){
        board[i][j] = X[i][j];
    }
}