Java 在更改副本2D阵列之前制作副本2D阵列

Java 在更改副本2D阵列之前制作副本2D阵列,java,multidimensional-array,Java,Multidimensional Array,我制作了一个2D数组,它是一个游戏的地图。当玩家在地图上移动时,阵列会发生轻微的变化,但我希望能够回到原始的、不变的阵列。我该怎么做 非常感谢 如果arr是2d字符串数组: String[][] copy = arr.clone(); 然后,只需更改copy 如果是一个对象数组,则可能需要制作深度副本,即制作所有包含对象的副本。但是在您的情况下,由于字符串s是不可变的,所以克隆就足够了。但是,请考虑将数据存储在类而不是字符串中。如果不需要每个元素的副本,只需要数组,请使用 array.clon

我制作了一个2D数组,它是一个游戏的地图。当玩家在地图上移动时,阵列会发生轻微的变化,但我希望能够回到原始的、不变的阵列。我该怎么做


非常感谢

如果
arr
是2d
字符串
数组:

String[][] copy = arr.clone();
然后,只需更改
copy


如果是一个对象数组,则可能需要制作深度副本,即制作所有包含对象的副本。但是在您的情况下,由于
字符串
s是不可变的,所以克隆
就足够了。但是,请考虑将数据存储在类而不是字符串中。

如果不需要每个元素的副本,只需要数组,请使用

array.clone()

如果确实需要复制每个元素,您可以看到。

为什么要这样做?数组是哪种类型的?将地图每个分片的历史记录保存为链表怎么样?这样您就不会保存重复的数据。对不起,我应该说,这是一个字符串数组