cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 6 septembre 2004
-
12 août 2004 à 15:28
cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDerniè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);
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 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).
cs_seb87
Messages postés37Date d'inscriptionvendredi 9 janvier 2004StatutMembreDerniè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é.