Skip to content

📘 Exercices sur equals() en Java

Exercice 1 : Classe simple

Créez une classe Livre avec les attributs : - String titre - String auteur

👉 ImplĂ©mentez la mĂ©thode equals() afin que deux livres soient considĂ©rĂ©s Ă©gaux s'ils ont le mĂȘme titre et le mĂȘme auteur. Testez avec plusieurs objets.


Exercice 2 : Vérifier le contrat equals()

Dans la classe Livre précédente, testez ces propriétés du contrat equals() :

  1. RĂ©flexivitĂ© : a.equals(a) doit ĂȘtre vrai.
  2. SymĂ©trie : si a.equals(b) est vrai, alors b.equals(a) doit ĂȘtre vrai.
  3. TransitivitĂ© : si a.equals(b) et b.equals(c) sont vrais, alors a.equals(c) doit ĂȘtre vrai.
  4. Consistance : rĂ©pĂ©ter plusieurs fois a.equals(b) doit toujours donner le mĂȘme rĂ©sultat.
  5. Comparaison avec null : a.equals(null) doit toujours ĂȘtre false.

Exercice 3 : Ignorer la casse

Modifiez la méthode equals() de Livre pour que la comparaison du titre ignore la casse (equalsIgnoreCase).

👉 Exemple : "1984" et "1984" ou "1984" et "1984" (majuscule/minuscule) doivent ĂȘtre considĂ©rĂ©s Ă©gaux.


Exercice 4 : Ajout d'un champ

Ajoutez un champ int anneePublication dans Livre.

👉 Modifiez equals() pour que deux livres soient Ă©gaux seulement si titre, auteur et annĂ©e sont identiques.

👉 Testez avec des livres qui n'ont que l'annĂ©e diffĂ©rente.


Exercice 5 : Mauvaise implémentation

Créez une classe Personne avec : - String nom - String prenom

Implémentez equals() en ne comparant que le nom.

👉 Testez avec deux personnes "Dupont Jean" et "Dupont Marie". Discutez : est-ce correct ? Quels problùmes cela peut-il poser ?


Exercice 6 : Comparaison avec ==

Écrivez un programme qui crĂ©e deux objets Livre ayant les mĂȘmes valeurs.

  1. Comparez-les avec ==
  2. Comparez-les avec equals()

👉 Expliquez la diffĂ©rence entre Ă©galitĂ© de rĂ©fĂ©rence (==) et Ă©galitĂ© logique (equals()).


Exercice 7 : Utilisation dans un tableau

Créez un tableau de Livre contenant plusieurs objets.

👉 Écrivez une mĂ©thode qui recherche si un livre donnĂ© est prĂ©sent dans le tableau en utilisant equals().

👉 Testez avec des livres identiques en contenu mais créés comme nouveaux objets.


Exercice 8 : Lien avec hashCode()

Reprenez votre classe Livre et implémentez equals() correctement.

👉 Corrigez ensuite en ajoutant hashCode() et observez la diffĂ©rence.