Pregunta

AbstractBaseGraph#getEdge(V,V) devuelve un solo E.¿Cómo decidir qué borde de regreso si los dos vértices han pasado más de un borde de conexión?

¿Fue útil?

Solución

Si hay varias aristas, parece que sólo uno es devuelto:

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

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

La primera del borde (que tienen origen y destino vértices igual a la args) se devuelve.Desde el iterador (basado en un Mapa de la estructura de datos) no hace gaurentee de la orden de que los componentes serán devueltos, no es posible estar seguro de que edge va a ser devuelto.Si usted necesita examinar y seleccione una arista específica, usted probablemente debería usar getAllEdges(V sourceVertex, V targetVertex).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top