我遇到了我编写的二维数组方法的问题。它没有什么花哨或复杂的东西。我正在开发一个Rubik的立方体解决方案,只是为了好玩,我还处于起步阶段。我遇到的问题是我的2d数组的一个索引正在被重新分配,但我没有重新分配它。以下是有问题的代码:
public static int[][] rightTurn(final int[][] array){
int[][] newArray = array;
System.out.println("Array at 02:" + array[0][2]);//this prints 3
System.out.println("NEW ARRAY:");
printArray(newArray);//this method just prints each row and column of the array.
newArray[0][2] = array[1][2];
newArray[1][2] = array[2][2];
newArray[2][2] = array[0][2];
System.out.println("Array at 02:" + array[0][2]);//now it prints 6
return newArray;
}
我传入此方法的数组是
int[][] twoDArray = {{1,2,3},
{4,5,6},
{7,8,9}
};
通过在右转方法中为数组[0] [2]赋值占位符变量,然后分配newArray [2] [2] =占位符,我找到了解决方法。但我仍然不知道为什么我的数组会重新分配数组[0] [2] = 6.任何人都可以对此提供任何见解吗?