Probleme d'unicité dans un HashSet [Résolu] - Java - Programmation
Marsh Posté le 01-12-2010 à 15:35:31
Solution trouvé:
HashSet is going to call the equals(Object) method, not |
Il faut ecrire une methode equals(Object p) et non equals(Couple p).
La version corrigée:
Code :
|
Marsh Posté le 01-12-2010 à 16:31:40
Une bonne habitude est d'utiliser l'annotation "@Override", ca permet d'eviter les erreur de ce type, le compilateur t'aurai donne un message d'erreur.
Ensuite, pour la surcharge des methodes hashCode() et equals(), je te conseille de jeter un coup d'oeil sur ce lien (meme si pour ton cas, ton implementation est tres bien), http://java.sun.com/developer/Book [...] apter3.pdf
Marsh Posté le 01-12-2010 à 18:39:56
Ok merci je prendrais le temps de jeter un coup d'oeil.
De toute facon faudra que je revienne sur le HashCode pour optimiser tout ca un peu plus tard.
Marsh Posté le 01-12-2010 à 14:44:12
J'ai le problème suivant, un HashSet accepte deux éléments identique.
Le code pour mettre le probleme en évidence:
Qui me renvoie le résultat suivant:
2
2
true
true
true
[(1,1)]
false
[(1,1)]
true
[(1,1), (1,1)
La class Couple, ou j'ai bien défini la méthode equals() et hashCode():
Need help, arrachage de cheveux en cours.
Message édité par bibiwood le 01-12-2010 à 15:36:13