Jung - Problème de bord et de sommet personnalisés
Question
J'ai défini un type de bord et de sommet personnalisé à utiliser dans un graphique clairsemé non dirigée. Le problème est que le graphique ajoute plusieurs arêtes que je ne veux pas. Par exemple, considérer le code ci-dessous:
UndirectedSparseGraph<Vertex, Edge> graphX = new UndirectedSparseGraph<Vertex, Edge>();
graphX.addEdge(new Edge("1#2"), new Vertex("1"), new Vertex("2"));
graphX.addEdge(new Edge("1#2"), new Vertex("1"), new Vertex("2"));
graphX.addEdge(new Edge("2#1"), new Vertex("2"), new Vertex("1"));
graphX.addEdge(new Edge("1#3"), new Vertex("1"), new Vertex("3"));
graphX.addEdge(new Edge("1#4"), new Vertex("1"), new Vertex("4"));
J'ai intentionnellement ajouté deux arêtes similaires (les premières). J'ai remplacé une méthode égale pour les deux classes que j'ai créées, c'est-à-dire Edge et Vertex, mais le graphique suppose comme les bords car les sommets sont différents et les ajoutent tous. Voici la sortie:
Vertices:1,4,1,1,2,1,1,2,2,3
Edges:1#3[1,3] 1#4[1,4] 1#2[1,2] 1#2[1,2] 2#1[2,1]
Alors, qu'est-ce que je fais de mal?
Ps. FYI Voici les cours que j'ai créés:
public class Vertex {
private String id;
//More info in the future
public Vertex(String id){
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj){
return ((Vertex) obj).id.equals(this.id);
}
@Override
public String toString(){
return this.id;
}
}
public class Edge {
private String id;
private double weight;
public Edge(String id, double weight){
this.id = id;
this.weight = weight;
}
public Edge(String id){
this.id = id;
this.weight = -1;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
@Override
public boolean equals(Object obj){
return ((Edge) obj).id.equals(this.id);
}
@Override
public String toString(){
return this.id;
}
}
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow