Junior — Middle
Comment la méthode equals est-elle implémentée en Java et comment est-elle utilisée pour comparer des objets?
sobes.tech IA
Réponse de l'IA
En Java, la méthode equals() est définie dans la classe Object et sert à comparer des objets pour l'égalité logique. Par défaut, elle compare les références (c'est-à-dire, vérifie si deux variables pointent vers le même objet).
Pour une comparaison correcte du contenu des objets, les classes redéfinissent généralement la méthode equals(), afin de comparer les champs significatifs des objets.
Exemple de redéfinition de equals():
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // vérification d'identité
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) && field2 == other.field2;
}
Il est important que lors de la redéfinition de equals(), on redéfinit également hashCode(), pour assurer le bon fonctionnement des objets dans les collections, par exemple, dans HashMap.
Utilisation:
MyClass a = new MyClass(...);
MyClass b = new MyClass(...);
if (a.equals(b)) {
// les objets sont considérés comme égaux en contenu
}