Probleme avec contains dans un HashSet - Java - Programmation
Marsh Posté le 12-01-2005 à 17:04:50
ta methode hashcode est pas ou mal implementée sur ta classe Point
Marsh Posté le 12-01-2005 à 17:24:10
the real moins moins a écrit : ta methode hashcode est pas ou mal implementée sur ta classe Point |
ou la methode equals!
Marsh Posté le 12-01-2005 à 17:31:42
ben il semble dire qu'elle marche sa methode equals. mais la methode hashcode ne doit pas etre implementée, ou pas correctement (elle *doit* etre "symetrique" - c quoi le mot déjà? - à equals())
Marsh Posté le 12-01-2005 à 18:58:43
the real moins moins a écrit : ta methode hashcode est pas ou mal implementée sur ta classe Point |
En fait il me semble qu'elle est correct voila ma classe Point
...
ce qui me donne ->
p1.equals(p2)? true
points.contains(p1)? true
points.contains(p2)? false
p1.hashCode() = 60200
p2.hashCode() = 60200
Jsuis perdu
Marsh Posté le 12-01-2005 à 19:10:34
la signature d'equals c'est equals(Object o) mais euh jpense pas que ça aie un rapport là
Marsh Posté le 12-01-2005 à 19:17:48
the real moins moins a écrit : la signature d'equals c'est equals(Object o) mais euh jpense pas que ça aie un rapport là |
Bien vu... c'était ca. Je sais pas pq mais en tous cas ca marche maintenant
Merci bcp!
Marsh Posté le 12-01-2005 à 16:32:28
J'ai une classe Point qui implémente des ... points et je construis un ensemble (HashSet) de points que j'apelle 'points'.
J'ai un probleme avec la méthode contains:
Si je crée deux points p1 et p2 tels que p1.equals(p2) soit true, que je mets p1 dans mon ensemble points et que je teste si points.contains(p2) j'obtiens false .
En bref j'ai :
p1.equals(p2)? true
points.contains(p1)? true
points.contains(p2)? false
Hors ca me semble contraire à ce qui est dis dans la doc à propos de contains:
boolean contains(Object o)
Returns true if this collection contains the specified element. More formally, returns true if and only if this collection contains at least one element e such that (o==null ? e==null : o.equals(e)).
Qu'est ce que je comprends mal