Java 克隆引用?

Java 克隆引用?,java,arrays,tree,clone,Java,Arrays,Tree,Clone,这可能是一个太具体的问题,但我希望我的问题有一个更普遍的解决方案 我有课。在这个类中是一个具有许多父/子节点的树型结构。此类中还有一个数组,其中填充了对该树型结构中每个节点的引用 树的目的是让每个节点知道在屏幕上绘制自己的位置(每个节点都有基于其父节点位置的相对位置信息) 数组的用途是绘制顺序,我只是先绘制数组[0]中引用的任何节点,依此类推。(因此,节点不是按照它们在树中出现的顺序绘制的) 我的问题是。我想克隆包含这两个对象的整个类(包含节点的树和引用所述节点的数组)。这似乎很简单 我创

这可能是一个太具体的问题,但我希望我的问题有一个更普遍的解决方案


我有课。在这个类中是一个具有许多父/子节点的树型结构。此类中还有一个数组,其中填充了对该树型结构中每个节点的引用


树的目的是让每个节点知道在屏幕上绘制自己的位置(每个节点都有基于其父节点位置的相对位置信息)

数组的用途是绘制顺序,我只是先绘制数组[0]中引用的任何节点,依此类推。(因此,节点不是按照它们在树中出现的顺序绘制的)


我的问题是。我想克隆包含这两个对象的整个类(包含节点的树和引用所述节点的数组)。这似乎很简单

我创建树结构及其包含的节点的深度副本。酷

但是,我不知道如何使用对新树中这些新节点的引用重新填充新数组。看起来很简单,但我不知道怎么做

我尽量做到足够具体,提供足够的信息而不会太混乱,希望你能理解


谢谢。

如果您能够更改节点数据结构,您可以为节点的数组索引添加一个字段。这样,一旦重建了树,就可以遍历它并使用索引字段重新填充数组。不是很优雅,但它完成了任务


或者,为了避免向节点类添加字段,我想您可以使用一个临时哈希表将节点映射到数组索引。遍历源数组以填充哈希表,然后克隆完树后,遍历树,在哈希表中查找新节点(如果正确实现了
equals
hashCode
,则可以正常工作)并从中填充数组。

sry我不知道您的问题是什么。如果实现克隆,您将调用
object.Clone()
,它将返回一个新实例;如果你的对象有一个列表,看看这篇文章,这个解决方案实际上非常实用和简单,谢谢。