如何在Java中复制二维数组?

Badcoder:

我需要为我正在研究的项目制作一个相当大的二维数组的副本。我有两个2D阵列:

int[][]current;
int[][]old;

我也有两种方法可以进行复制。我需要复制数组,因为当前会定期更新。

public void old(){
  old=current
}

public void keepold(){
  current=old
}

但是,这不起作用。如果我叫old,对current进行更新,然后再调用keepold,则current不等于原来的值。为什么会这样呢?

谢谢

路易斯·瑞斯:

current=oldold=current使两个数组引用相同的东西,因此,如果您随后修改currentold也会被修改。要将数组的内容复制到另一个数组,请使用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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章