如何在Java中复制二维数组?
我需要为正在进行的项目制作一个相当大的二维数组的副本。我有两个2D阵列:
int[][]current;int[][]old;
我也有两种方法来进行复制。我需要复制数组,因为当前会定期更新。
public void old(){ old=current
}
和
public void keepold(){ current=old
}
但是,这不起作用。如果我叫old,对current进行更新,然后再调用keepold,则current不等于原来的值。为什么会这样呢?
谢谢
回答:
current=old
或old=current
使两个数组引用相同的东西,因此,如果你随后修改current
,old
也会被修改。要将一个数组的内容复制到另一个数组,请使用for
循环
for(int i=0; i<old.length; i++) for(int j=0; j<old[i].length; j++)
old[i][j]=current[i][j];
PS:对于一维数组,可以避免使用来创建自己的for循环 Arrays.copyOf
以上是 如何在Java中复制二维数组? 的全部内容, 来源链接: utcz.com/qa/432379.html