包含所有元素的二维数组的深层复制
我正在使用 2D 数组 (4x4) 制作一个基本游戏,其中必须切换元素(具有整数 1 到 16 的对象类型)才能达到特定的目标状态,该状态必须与当前状态进行比较,因此需要复印。
到目前为止,我已经:
public void cloneArray() throws CloneNotSupportedException
{
ClassName copy = (ClassName)super.clone();
copy.tiles = (Tile[][]) tiles.clone();
}
这似乎是正确的,还是我错过了一些东西?
I am making a basic game using a 2D array (4x4) in which the elements (of object type with ints 1 to 16) must be switched around to reach a particular goal state, this state must be compared with the current state, hence the need for copying.
So far I have:
public void cloneArray() throws CloneNotSupportedException
{
ClassName copy = (ClassName)super.clone();
copy.tiles = (Tile[][]) tiles.clone();
}
Does this appear to be right, or am I missing something out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要更进一步,这样做:
原因是克隆制作了顶级数组的浅表副本,该数组保存对其他数组的引用。
You'll need to go one step further and do like so :
The reason is that clone makes a shallow copy of the top-level array, which is holding references to other arrays.