if(findEdge(g,v1,v2)==null)
g.addEdge(new Edge(), v1, v2, EdgeType.DIRECTED);
其中findEdge函数是
public Edge findEdge(DirectedGraph<Vertex, Edge> g, Vertex v1,Vertex v2) {
Collection<Edge> edges = g.getEdges();
for (Edge ed : edges) {
//System.out.print(vt.getLabel() + " ");
if(ed.getNodeFrom().equals(v1.getLabel())&&ed.getNodeDes().equals(v2.getLabel())) {
return ed;
}
}
return null;
}
从该函数中,我可以得到关于两个已存在节点的边缘的结果,存在或为空。
答案 0 :(得分:0)
首先,Graph已经有了一个findEdge()方法;看看Marco13 @指向你的API文档。
其次,正如rlegendi @指出的那样,不清楚你是否想要一个多图:如果你这样做,为什么你只是在没有一个存在的情况下添加边缘,如果你不,你为什么要创建一个DirectedSparseMultigraph对象?
目前尚不清楚你想要完成什么。