我正在尝试清理我在JAVA中实现的一组节点,以创建一个有向无环图。我有一个Java集,在我的最终图中有我想要的每个节点,但是一些节点ID是相同的。当我尝试组合具有相同ID的节点时,如果它们具有相同的childList,则会遇到问题。由于childList是一个JAVA链接列表,我无法在不随后更改其他节点的子节点的情况下将childList添加或更改为其中一个节点。
我试图取消引用每个链接列表,以便我可以更改节点的子节点而不会产生击倒效果,但是我很难找到它的代码。例如,如果你看下面的话,当我试图通过移动一个子节点时,将节点Surday(使用HashCode引用src.java.GNode@5)与另一个名为Surday的节点(引用src.java.GNode@3)组合在一起。另一方面,我不能在不改变Suday和Sunrday节点的子节点的情况下这样做(src.java.GNode@2和src.java.GNode@1)。
Node: Sunday Node HashCode Reference: src.java.GNode@0
Node: Sunrday Children: src.java.GNode@0 Children: src.java.GNode@1
Node HashCode Reference: src.java.GNode@1
Node: Suday Children: src.java.GNode@0 Children: src.java.GNode@1
Node HashCode Reference: src.java.GNode@2
Node: Surday Children: src.java.GNode@0 Children: src.java.GNode@1
Node HashCode Reference: src.java.GNode@3
Node: Surday Children: src.java.GNode@1 Node HashCode Reference: src.java.GNode@4
Node: Surday Children: src.java.GNode@2 Node HashCode Reference: src.java.GNode@5
Node: Sturday Children: src.java.GNode@3 Node HashCode Reference: src.java.GNode@6
Node: Sturday Children: src.java.GNode@4 Node HashCode Reference: src.java.GNode@7
Node: Sturday Children: src.java.GNode@5 Node HashCode Reference: src.java.GNode@8
Node: Saturday Children: src.java.GNode@6 Children: src.java.GNode@7 Children: src.java.GNode@8 Node HashCode Reference: src.java.GNode@c
有没有人对如何解决此问题有任何想法?我正在考虑由于需要更改这些节点而不会对子列表产生任何影响,我可以将子列表放入字符串数组中,但是我可视化我的算法的以下代码会受到很大影响。
谢谢。