Comment AbstractBaseGraph#getEdge(V,V) Traiter avec des Bords Parallèles?
-
21-12-2019 - |
Question
AbstractBaseGraph#getEdge(V,V)
renvoie un seul E.Comment est-il décider quel bord de revenir si les deux sommets ont passé plus d'une connexion edge?
La solution
Si il y a plusieurs arêtes, il parait qu'on est retourné:
public E getEdge(V sourceVertex, V targetVertex){
...
Iterator<E> iter =
getEdgeContainer(sourceVertex).vertexEdges.iterator();
while (iter.hasNext()) {
E e = iter.next();
...
Pour la première fois sur le bord (avoir la source et la cible de points égal à la args) est retourné.Depuis l'itérateur (basé sur une Carte de la structure de données) ne fait pas de gaurentee de l'ordre dans lequel les composants seront retournés, il n'est pas possible d'être certain de quel bord vous sera retourné.Si vous avez besoin d'examiner et de choisir une arête, vous devriez probablement utiliser getAllEdges(V sourceVertex, V targetVertex)
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow