hashcode et equals | Java

Par défaut, la super classe java.lang.Object fournit deux méthodes importantes pour comparer les objets : equals() et hashcode(). Dans cet article, nous allons parler de la relation entre ces méthodes, de leurs implémentations par défaut, et des circonstances qui obligent les développeurs à fournir une implémentation personnalisée pour chacune d’entre elles.
 
 

La méthode equals(Object obj)

Cette méthode est fournie par java.lang.Object qui indique si un autre objet passé en argument est « égal » à l’instance courante. L’implémentation par défaut fournie par le JDK est basée sur l’emplacement mémoire – deux objets sont égaux si et seulement s’ils sont stockés dans la même adresse mémoire.
 

La méthode hashcode()

Cette méthode est fournie par java.lang.Object qui retourne une représentation entière de l’adresse mémoire de l’objet. Par défaut, cette méthode renvoie un entier aléatoire unique pour chaque instance. Cet entier peut changer entre plusieurs exécutions de l’application et ne restera pas le même.
 

La relation entre equals et hashcode

Si deux objets sont égaux selon la méthode equals(Object), l’appel de la méthode hashcode() sur chacun des deux objets doit produire le même résultat.

QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *