bonjour
j'ai deux structures (2 graphes) que je veux comparer la methode equals ne marche pas et je veux savoir si une methode existe ou pas ?
merci
Version imprimable
bonjour
j'ai deux structures (2 graphes) que je veux comparer la methode equals ne marche pas et je veux savoir si une methode existe ou pas ?
merci
Ton graphe c'est une classe que tu as écrit toi même? Si oui tu doit redéfinir toi même la méthode equals
Tu peux aussi faire implémenter ta classe de l'interface Comparable et définir la méthode public int compareTo(Object o)
A+
il faut redéfinir le compareto(o)???
Ben oui, il n'y a que toi pour savoir si un objet avec ces attributs est "inférieur" ou "supérieur" ou "égal"...
normalement le equals doit faire l 'affaire avec graphe.equals(graphe_test) mais j 'ai l'impresseion que l'equals il prend un == par defaut car je veux comparer tt les noeuds et les liens
cette classe de graphe tu l'a écrit toi même?
Si c'est toi qui l'a écrit et que tu n'a pas redéfinie la méthode equals par défault elle ne fait qu'un ==. Donc si tu veux qu'elle fasse autre chose il faut la reféfinir
ce qui me semble
merci
Salut,
C'est tout à fait ca !Citation:
Envoyé par scolopendra
C'est à toi de redéfinir equals() (et hashCode() par la même occasion)!
:faq: Pourquoi et comment redéfinir la méthode equals() ?
a++
N'oublie pas le marqueur résolu ^^
un probleme et si j'ai pas acces à la class mere Graphe car j'ai pas acces à la source mais juste aux liens ?? que faut il faire dans ce cas
Dans ce cas, tu crées une classe qui "étend" la classe Graphe et tu lui ajoutes les méthodes que tu veux ;)Citation:
Envoyé par scolopendra
Code:
1
2
3
4 public MonGraphe extends Graphe implements Comparable { // ... }
Dans ce cas tu hérites en créant une nouvelle classe Graphe. Mais même dans ce cas ça risque de ne pas être facile, car Graphe a peut être des attributs private dont tu auras besoin dans ton equals ...
Sinon, tu fais une méthode statique quelquepart compareGraphs(Graphe graphe1, Graphe graphe2) mais même souci si tu as besoin d'accéder à des éléments privés de Graphe ...
voila j'ai les elements mais je sais pas comment créer cette methode
alors j'ai créer un objet1 de type graphe
Graphe objet1 =new Graphe();
deuxieme objet2 de type graphe
Grpahe objet2=new Graphe();
les noeuds du graphe sont declarés comme suit en fait sont des couples:
Couple[] couples = (Couple[])objet1.toArray(new Couple[objet1.size()]);
et
Couple[] couples = (Couple[])objet2.toArray(new Couple[objet2.size()]);
et en gros faut je crois faire créer une methode
public boolean equal (objet1,objet2){
this.objet1=objet1;
this.objet2=objet2;
for(int i=0; i<objet1.size();i++)
if(couples[i].equals(couples[i])){
break;
}
return true;
}
c'est correcte ou pas ???
Non, la solution est dans le genre de celle de CyberChouan
A+Code:
1
2
3
4
5
6
7
8 public class MonGraphe extends Graphe { public boolean equals(Objet obj) { ... le code de comparaison à ta charge ... } }