Junior — Middle
Est-il possible que deux objets considérés comme non égaux par equals aient la même valeur de hashCode?
sobes.tech IA
Réponse de l'IA
Oui, c'est possible. En Java, le contrat des méthodes equals() et hashCode() exige que si deux objets sont égaux selon equals(), ils doivent avoir le même hashCode(). Mais l'inverse n'est pas obligatoire : deux objets avec le même hashCode() peuvent ne pas être égaux selon equals().
Cela est dû au fait que hashCode() retourne une valeur entière de taille fixe, et différents objets peuvent avoir des collisions — le même hash.
Par exemple, dans des collections comme HashMap ou HashSet, on compare d'abord le hashCode(), puis on utilise equals() pour déterminer si les objets sont exactement égaux.