当前位置: 首页 > 面试题库 >

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

端木高卓
2023-03-14
问题内容

我需要为正在进行的项目制作一个相当大的二维数组的副本。我有两个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



 类似资料:
  • 我该如何在Java中使用二维数组来设计这样的东西呢? 除了“name[i][j]=200;”当我把这个放进去的时候,它只印这个,其他什么也不印

  • 问题内容: 我正在使用使用Strings的二维数组的程序(一开始可能不是很聪明,但是eh),并且我想编写一个采用这些数组之一的函数(比方说array1),一个独立的副本,并返回它(假设为array2)。但是,当我然后更改array2中的值时,它似乎反映在array1中。 我的函数当前看起来像这样: 我声明一个新的字符串数组,然后对其进行迭代,分别复制每个值。当这不起作用时,我什至尝试从每个旧字符串

  • 问题内容: 我想动态创建一个二维数组。 我知道列数。但是行数正在动态更改。我尝试了数组列表,但它仅将值存储在单个维度中。我能做什么? 问题答案: 由于列的数量是恒定的,你可以有一个的。 由于它以a 为后缀,因此行数可以动态增加和减少。每行都有一个,它是静态的,但是您说列数是固定的,因此这不是问题。

  • 问题内容: 我有一个像这样的文本文件: ids.txt 我想读取此文件并将其加载到二维数组中。我希望有一个类似于下面的数组: 这是我写的代码: 运行此代码时,将引发异常: 如何解决此异常? 问题答案: 给定,您可以将每个项目解析为,并将其包装为使用: 现在要将结果转换为a,您只需执行以下操作: 对于输入: 输出:

  • 我正在学习Java编程。 我有一个任务,需要将二维数组转换为地图 我写了一个方法: 但我不明白为什么它不能转换字符。输入: 请告诉我,我做错了什么

  • 问题内容: 我想定义一个没有初始化长度的二维数组,如下所示: 但这不起作用… 我已经尝试过下面的代码,但是它也是错误的: 错误: 我怎么办呢? 问题答案: 从技术上讲,你正在尝试索引未初始化的数组。你必须先使用列表初始化外部列表,然后再添加项目。Python将其称为“列表理解”。 你现在可以将项目添加到列表中: 请注意,矩阵是地址主地址,换句话说,“ y索引”位于“ x索引”之前。 尽管你可以根据