đ Exercices sur hashCode() en Java¶
Exercice 1 : Classe simple et problĂšme¶
Créez une classe Personne avec un seul champ :
- String nom
Implémentez uniquement la méthode equals() (sans hashCode()).
- CrĂ©ez deux objets diffĂ©rents mais avec le mĂȘme nom.
- Vérifiez avec
equals()â rĂ©sultat attendu :true. - Ajoutez ces deux objets dans un
HashSetâ combien d'Ă©lĂ©ments obtenez-vous ? Pourquoi ?
Exercice 2 : Corriger avec hashCode()¶
Dans la classe Personne, redĂ©finissez correctement hashCode() Ă
l'aide de :
đ Refaites le test avec un HashSet. Que remarquez-vous maintenant ?
Exercice 3 : Plusieurs champs¶
Ajoutez Ă la classe Personne les attributs :
- String prenom
- int age
Implémentez equals() et hashCode() avec tous les champs.\
đ Testez avec des objets qui diffĂšrent seulement par l'Ăąge ou le
prénom.
Exercice 4 : Mauvais hashCode¶
Créez une classe Livre avec :
- String titre
- String auteur
Implémentez equals() normalement, mais pour hashCode() renvoyez
toujours la mĂȘme valeur :
đ Ajoutez plusieurs Livre dans un et tester la mĂ©thode hashCode().
Exercice 5 : Bonus rĂ©flexion¶
Expliquez :
- Pourquoi deux objets diffĂ©rents peuvent avoir le mĂȘme hashCode ?
- Est-ce un bug ou une situation normale ?
- Pourquoi est-il dangereux de redéfinir
equals()sans redéfinirhashCode()?