是否有一种方法可以在保持顶点内容的同时更改顶点的内容。我找不到一个,但似乎会提供一些东西。
答案 0 :(得分:1)
JGraphT没有替换顶点的方法。你可以用它来做你想做的事:
public static <V, E> void replaceVertex(Graph<V, E> graph, V vertex, V replace) {
graph.addVertex(replace);
for (E edge : graph.outgoingEdgesOf(vertex)) graph.addEdge(replace, graph.getEdgeTarget(edge), edge);
for (E edge : graph.incomingEdgesOf(vertex)) graph.addEdge(graph.getEdgeSource(edge), replace, edge);
graph.removeVertex(vertex);
}
答案 1 :(得分:0)
改变顶点的内容是什么意思?顶点是使用泛型构造的,这意味着您可以在其中放置任何对象,这意味着您可以提供一种方法来替换此对象的内容(如果它不是不可变的)。或者你想在那里完全放置一个新对象(全新的顶点)并保存旧对象的所有关系?那么您可能必须找到具有此顶点(java.util.Set<E> edgesOf(V vertex)
)的边,删除它们(boolean removeEdge(E e)
),并替换为包含新顶点(E addEdge(V sourceVertex, V targetVertex)
)的新顶点。