Java 通过引用将较小的二维阵列指定给较大的二维阵列
在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[
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数组。您必须创建不同的阵列并复制所需的零件。