Junior — Middle
Quels sont les principes fondamentaux de la relation entre les méthodes equals et hashCode en Java?
sobes.tech IA
Réponse de l'IA
Principes fondamentaux de la relation entre equals et hashCode en Java :
- Si deux objets sont égaux selon equals, leur hashCode doit être identique.
- Si le hashCode de deux objets est différent, equals doit retourner false.
- Si equals retourne false, le hashCode peut coïncider, mais ce n'est pas souhaitable, car cela dégrade la performance des structures de hachage.
Cela assure le bon fonctionnement des collections utilisant le hachage (HashMap, HashSet), où hashCode détermine la case et equals effectue la comparaison précise des objets.
Exemple :
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return Objects.equals(id, person.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
Ici, equals et hashCode sont basés sur le même champ id, ce qui garantit leur cohérence.