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