How to copy a graph in JUNG 2.0 framework?

2019-06-23 18:22发布

in JUNG 1.7.6 there was the function copy() for this purpose (myGraph.copy()), but in JUNG 2.0 this function does not exist anymore. I could not find any other possibility to create a copy of a graph object. I would be very glad if someone could help me. A workaround would be nice, too.

Thanks a lot!

3条回答
Anthone
2楼-- · 2019-06-23 18:32

Code below with generics, so you should replace V and E with String for your Graph<String, String>.

    Graph<V, E> src;
    Graph<V, E> dest;

    for (V v : src.getVertices())
        dest.addVertex(v);

    for (E e : src.getEdges())
        dest.addEdge(e, src.getIncidentVertices(e));
查看更多
啃猪蹄的小仙女
3楼-- · 2019-06-23 18:41

You can copy the graph manually by iterating over all vertices and all edges and adding them to a new graph. See getVertices() in the API

查看更多
Ridiculous、
4楼-- · 2019-06-23 18:42

You could do a simple copy of vertices & edges, that would create a new Graph, but the objects inside will be passed by reference so you could use this cloning library https://code.google.com/p/cloning/

and do a deep copy:

Cloner cloner = new Cloner();
Graph<V, E> clonedGraph = cloner.deepClone(graph);
查看更多
登录 后发表回答