Java 有没有办法清除数组并将其基本重置为过去的内容

Java 有没有办法清除数组并将其基本重置为过去的内容,java,multidimensional-array,Java,Multidimensional Array,我基本上希望在我拍摄完我的阵列/游戏中的所有元素后重置阵列。有什么方法可以清除我的2D数组并基本上重置它,以便我已拍摄并声明为空的所有元素都返回?您可以保留原始数组的一个(深度)副本,并在最后制作一个新的工作副本 如果不更改数组中的实际对象,可以使用Foo[]backup=original.clone()进行浅拷贝,但如果数组中的对象具有状态(例如健康状况),则需要手动循环数组并创建对象的深度副本。可以保留原始数组的(深度)副本,最后只需创建新的工作副本 如果不更改数组中的实际对象,可以使用Fo

我基本上希望在我拍摄完我的阵列/游戏中的所有元素后重置阵列。有什么方法可以清除我的2D数组并基本上重置它,以便我已拍摄并声明为空的所有元素都返回?

您可以保留原始数组的一个(深度)副本,并在最后制作一个新的工作副本

如果不更改数组中的实际对象,可以使用
Foo[]backup=original.clone()进行浅拷贝,但如果数组中的对象具有状态(例如健康状况),则需要手动循环数组并创建对象的深度副本。

可以保留原始数组的(深度)副本,最后只需创建新的工作副本


如果不更改数组中的实际对象,可以使用
Foo[]backup=original.clone()进行浅拷贝,但如果数组中的对象具有状态(例如运行状况),则需要手动循环数组并创建对象的深度副本。

可以在数组上逐循环清除数组,并将每个元素设置为null

for( int i = 0; i < yourArray.length; i++ )
   Arrays.fill( yourArray[i], null );
for(int i=0;i
您无法还原以前的内容,除非您可以备份(复制)阵列以供以后使用

深度复制代码:

public int[][] copy(int[][] input) {
      int[][] target = new int[input.length][];
      for (int i=0; i <input.length; i++) {
        target[i] = Arrays.copyOf(input[i], input[i].length);
      }
      return target;
}
public int[][]复制(int[][]输入){
int[][]目标=新的int[input.length][];

对于(inti=0;i,可以在数组上逐个循环清除数组,并将每个元素设置为null

for( int i = 0; i < yourArray.length; i++ )
   Arrays.fill( yourArray[i], null );
for(int i=0;i
您无法还原以前的内容,除非您可以备份(复制)阵列以供以后使用

深度复制代码:

public int[][] copy(int[][] input) {
      int[][] target = new int[input.length][];
      for (int i=0; i <input.length; i++) {
        target[i] = Arrays.copyOf(input[i], input[i].length);
      }
      return target;
}
public int[][]复制(int[][]输入){
int[][]目标=新的int[input.length][];

for(int i=0;i仅通过保留原始内容的数组引用并重新分配它(注意,您可能需要深度副本,具体取决于数组的类别)请添加您迄今为止尝试过的内容。在初始状态下创建一个数组,并在每次启动/重新启动游戏时深度复制它。永远不要更改它。您可以使用静态方法以工厂方式返回它。只需保留原始内容的数组引用并重新分配它(注意,根据阵列的类别,您可能需要深度副本)请添加您迄今为止尝试过的内容。在初始状态下创建一个数组,并在每次启动/重新启动游戏时深度复制它。永远不要更改它。您可以使用一个静态方法以工厂方式返回它。yourArray表示您的数组对象。好的,谢谢,我该如何复制我的数组?它只是一个简单的副本吗粘贴我已经拥有的循环?yourArray意味着你的数组对象好的,谢谢,我如何复制我的数组?这只是我已经拥有的循环的简单复制和粘贴吗?