Java 如何在JUNG 2.0框架中复制图形?

Java 如何在JUNG 2.0框架中复制图形?,java,frameworks,graph,jung,Java,Frameworks,Graph,Jung,在JUNG 1.7.6中有用于此目的的函数copy()(myGraph.copy()),但在JUNG 2.0中,此函数不再存在。我找不到创建图形对象副本的任何其他可能性。如果有人能帮助我,我将非常高兴。解决办法也不错 非常感谢 您可以通过迭代所有顶点和所有边并将它们添加到新图形中来手动复制图形。请参见下面的API代码中的泛型,因此您应该将图形的V和E替换为字符串 图src; 图形dest; 对于(V:src.getVertices()) 目的地添加顶点(v); 对于(E:src.getEdges

在JUNG 1.7.6中有用于此目的的函数copy()(myGraph.copy()),但在JUNG 2.0中,此函数不再存在。我找不到创建图形对象副本的任何其他可能性。如果有人能帮助我,我将非常高兴。解决办法也不错


非常感谢

您可以通过迭代所有顶点和所有边并将它们添加到新图形中来手动复制图形。请参见下面的API代码中的泛型,因此您应该将图形的VE替换为字符串

图src;
图形dest;
对于(V:src.getVertices())
目的地添加顶点(v);
对于(E:src.getEdges())
目的地附录(e,src.getIncidentVertex(e));

您可以简单复制顶点和边, 这将创建一个新的图形,但其中的对象将通过引用传递,因此您可以使用此克隆库

并进行深度复制:

Cloner cloner = new Cloner();
Graph<V, E> clonedGraph = cloner.deepClone(graph);
Cloner Cloner=new Cloner();
Graph clonedGraph=cloner.deepClone(图形);

如果我有一个图形,函数getVertices()将返回一个包含顶点的集合。函数getEdge()返回一个带有边ID的集合,但我没有得到由该边连接的顶点。。。我发现,查看哪些顶点由特定边连接的唯一方法是打印graph.toString()方法……这基本上是正确的,但有一个细节和一个增强:(1)不应该用String替换V,E,而应该用图形的类型替换V,E(如果创建自己的静态方法,您甚至不需要或不想这样做)。(2) 如果事先知道所有顶点都有关联边,并且使用JUNG提供的图类,则可以省略第一个循环;addEdge将添加不存在的事件边。
Cloner cloner = new Cloner();
Graph<V, E> clonedGraph = cloner.deepClone(graph);