Dan*_*kov 5 java graph jgrapht
我需要复制一个简单的图表。
我在图形生成器中没有看到图形复制器,并且 UndirectedGraph 没有实现克隆方法。
那一年,我可以用手抄一张图。但我想用一行来做这件事。
无向图是一个接口。然而,大多数具体子类(例如SimpleGraph)都扩展了AbstractBaseGraph,它实现了clone() 方法。
所以,如果你能保证你手里的UndirectedGraph继承自AbstractBaseGraph,只需强制转换为AbstractBaseGraph并调用clone方法即可。
public void someMethod(UndirectedGraph g)
{
// Do some stuff...
((AbstractBaseGraph)g).clone(); // <== Your 1-liner
// Do some more stuff...
}
Run Code Online (Sandbox Code Playgroud)
但请记住,根据 JavaDoc,clone() 方法执行浅克隆。因此,图实例被克隆,但其中的顶点和边却没有被克隆。