克隆参考?

时间:2014-05-15 12:57:16

标签: java arrays tree clone

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


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


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

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


我的问题是这个。我想克隆这个包含这两个对象的整体类(带有节点的树和一个引用所述节点的数组)。这看起来很简单。

我创建了树结构及其包含的节点的深层副本。凉。

但是,我不知道如何通过引用这个新树中的这些新节点来重新填充新数组。看起来很简单,但我无法弄清楚如何去做。

我试图具体到足以提供足够的信息而不会太混乱,希望你理解。

感谢。

1 个答案:

答案 0 :(得分:0)

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

或者,为了避免向节点类添加字段,我想您可以使用将节点映射到数组索引的临时哈希表。遍历您的源数组以填充哈希表,然后在克隆树之后,遍历树,查找哈希表中的新节点(假设您已实现equals和{{ 1}}正确)并从那些​​填充数组。