我试图复制一个二维数组,然后操作复制版本中的数据,并将其与原始版本进行比较。
int[][] magicSquare2 = magicSquare;
我试过这个,但我意识到它指的是同一个物体。
要在Java中创建数组的副本,请使用System.arraypy((。因此,如果对于exmaple,您有一个数组(无论是一个还是多个(,则
int[] array = {4, 2, 5};
int[] copy = new int[3];
System.arraycopy(array, 0, copy, 0, 3);
这样做:
int[] array = {23, 43, 55, 12};
int newLength = array.length;
int[] copiedArray = Arrays.copyOf(array, newLength);
对于二维数组,复制第一个维度。然后对第一个维度中的元素重复该过程。注意:如果不复制或克隆元素。它们将引用原始元素。
int[][] a2d={{0,1},{1,0}};
Int[][] copy=Arrays.copy(a2d,a2d.length);
for(int i=0;i<a2d.length;i++){
int[] e=copy[i];
//you might prefer doing null check before you proceed.
copy[i]=Arrays.copy(e,e.length);
}