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

有帮助吗?

解决方案

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top