Egalite entre 2 objets

cs_seb87 Messages postés 37 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 6 septembre 2004 - 12 août 2004 à 15:28
cs_seb87 Messages postés 37 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 6 septembre 2004 - 12 août 2004 à 19:55
J'ai un vecteur contenant des objets. Et je voudais en supprimé quelques uns en cas d'egalité.

Mais même si leur propriété, sont identiques , il me dit qu'ils sont differents (avec hashcode different).

comment marche la comparaison d'objet en JAVA

voici le bout de code

Vector tmpVec = new Vector();
tmpVec= pcbcontext.getListVraidef() ;

for (int i=0;i<tmpVec.size();i++)
{
CompInfo tmpCi = (CompInfo)tmpVec.elementAt(i);

if (tmpCi.getDCI_Idx() == DCI_idx && tmpCi.getDtmp_NoGoType().compareTo(TypeDef)==0)
{
Listpattes.addElement(tmpCi);

pcbcontext.getListVraidef().removeElement(tmpCi);
}
}

3 réponses

asx9 Messages postés 64 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 18 novembre 2004 1
12 août 2004 à 17:11
asx9

l'égalité entre 2 objets se fait avec "equals"

exemple : if (objet1.equals(objet2)) {...}

ps : c'est "equal" ou "equals" je ne sais plus très bien
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
12 août 2004 à 18:38
Attention : par défaut, la méthode equals() compare les références.

Par conséquent, si tu utlises des objets d'une classe que tu as écrite, pense à redéfinir equals() (méthode de la classe Object)

De même, pense à vérifier qu'elle est redéfinie dans la classe si tu utilises une classe de chez Sun (elle est redéfinie pour la classe String, mais pas pour toutes).
0
cs_seb87 Messages postés 37 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 6 septembre 2004
12 août 2004 à 19:55
en fait je sais c'est la methode equals. Desolé si j'ai pas ete clair.

mon probleme vient du fait que je supprime mon objet dans le vecteur en utilisant la methode vecteur.remove(object)
voir ci dessus
mais l'objet n'ais pas trouvé dans le vecteur alors que c'est bien le bon objet. D'ou mon interrogation sur l'egalité entre objet

remarque en utlisant la methode vecteur.remove(int i) ca marche mais j'ai une exception qui est levé dans mon For, a cause de la taille du vecteur qui a changé.
0
Rejoignez-nous