graph.addEdge() неявно добавить несуществующие вершины?

Хотя хорошо, что JGraphT разделяет процесс добавления вершин и ребер, конечно, есть случай, когда вы захотите объединить эти два? Другими словами, если вы попытаетесь добавить ребро, где одна (или обе) вершин отсутствуют в графе, то добавьте их?

Есть ли у JGraphT такой ярлык для написания трех вызовов методов?

1 ответ

Вы можете просто переопределить метод JGraphT, чтобы добавить в него вершины, которых еще нет в графе:

@Override
public E addEdge(V sourceVertex, V targetVertex) {
    if (!containsVertex(sourceVertex)) {
        addVertex(sourceVertex);
    }
    if (!containsVertex(targetVertex)) {
        addVertex(targetVertex);
    }
    return super.addEdge(sourceVertex, targetVertex);
}
Другие вопросы по тегам