AbstractBaseGraph#getEdge(V,V)如何处理平行边缘?

时间:2014-01-09 18:40:04

标签: jgrapht

AbstractBaseGraph#getEdge(V,V)返回一个E.如果传递的两个顶点有多个连接边,它如何决定返回哪条边?

1 个答案:

答案 0 :(得分:0)

如果有多条边,则看起来只返回一条:

    public E getEdge(V sourceVertex, V targetVertex){
    ...
    Iterator<E> iter =
                getEdgeContainer(sourceVertex).vertexEdges.iterator();

            while (iter.hasNext()) {
                E e = iter.next();
    ...

返回第一个合法边(源和目标顶点等于args)。由于迭代器(基于Map数据结构)不会使组件返回的顺序失败,因此无法确定将返回哪个边缘。如果您需要检查并选择特定边缘,则应该使用getAllEdges(V sourceVertex, V targetVertex)