Java 通过引用将较小的二维阵列指定给较大的二维阵列

Java 通过引用将较小的二维阵列指定给较大的二维阵列,java,multidimensional-array,reference,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[

在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();
    }


}
publicstaticvoidmain(字符串[]args){
字符串[][]板=新字符串[15][27];
字符串[][]X=新字符串[5][9];
字符串[][]Y=新字符串[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”);
对于(int i=0;i<15;i++){
对于(int j=0;j<27;j++){
系统输出打印(板[i][j]);
}
System.out.println();
}
}
很明显,这条线

板=x


不起作用。但是,有没有办法将较小数组的地址分配给较大数组的某个部分,或者我们必须逐个元素进行此操作?

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

for (int i = 0; i < 5; i++){
    for (int j = 0; j < 9; j++){
        board[i][j] = X[i][j];
    }
}
for(int i=0;i<5;i++){
对于(int j=0;j<9;j++){
董事会[i][j]=X[i][j];
}
}

您可以很容易地为此创建自己的函数。我怀疑默认库中是否已经有用于此的函数。是一个按元素分配的函数,还是一个按元素分配引用的函数。“分配引用”是什么意思?您能演示如何在Java中为另一个变量分配内存地址吗?@DCR这里有一个简单的指南帮助您理解:谢谢您的引用。这有点基本。是否有方法声明9X9数组,然后将3X3数组的地址分配给9X9的不同段?@DCR否,您只能分别为每一行分配引用(1x9数组)。不能将引用分配给9x9中较小的3x3数组。您必须创建不同的阵列并复制所需的零件。