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

时间:2016-04-19 10:36:04

标签: java multidimensional-array

我基本上想要在我拍摄阵列/游戏中的所有元素后重置阵列。有没有办法我可以清除我的2D数组,并基本上重置它,以便我已经拍摄并声明为null的所有元素然后返回?

2 个答案:

答案 0 :(得分:2)

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

如果你没有对数组中的实际对象进行更改,你可以使用Foo[][] backup = original.clone();进行浅层复制,但是如果数组中的对象具有状态(例如健康状况),那么你将会需要手动循环数组并创建对象的深层副本。

答案 1 :(得分:0)

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

for( int i = 0; i < yourArray.length; i++ )
   Arrays.fill( yourArray[i], null );

除了可以对阵列进行备份(复制)以供以后使用外,您无法恢复过去的内容。

深拷贝代码:

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