如何复制和操作二维数组



我试图复制一个二维数组,然后操作复制版本中的数据,并将其与原始版本进行比较。

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

最新更新