Que fait la méthode equals() ?
sobes.tech IA
Réponse de l'IA
La méthode equals() en Java compare deux objets pour vérifier leur égalité.
Par défaut (dans la classe Object), elle vérifie si les références pointent vers le même objet (si elles référencent le même exemplaire en mémoire).
Les classes peuvent redéfinir cette méthode pour déterminer l'égalité logique des objets basée sur leur contenu (par exemple, deux objets String sont considérés égaux s'ils contiennent la même séquence de caractères, même s'il s'agit de différentes instances).
Lors de la redéfinition de equals(), il est également nécessaire de redéfinir la méthode hashCode() pour respecter l'accord suivant : si deux objets sont égaux selon equals(), alors leurs méthodes hashCode() doivent retourner des valeurs identiques.
Exemple de redéfinition :
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Comparaison des références
if (o == null || getClass() != o.getClass()) return false; // Vérification de null et comparaison des types
MyClass myClass = (MyClass) o; // Cast
return value == myClass.value; // Comparaison logique par le champ value
}
@Override
public int hashCode() {
return Objects.hash(value); // Génération du hash
}
}