Différence entre equals et hashCode en Java

Différence clé - égale vs hashCode dans Java
 

L'égalité est similaire à l'opérateur ==, qui consiste à tester l'identité de l'objet plutôt que son égalité. HashCode est une méthode par laquelle une classe décompose de manière implicite ou explicite les données stockées dans une instance de la classe en une seule valeur de hachage, qui est un entier signé de 32 bits. le différence clé entre égaux et hashCode dans Java est-ce L'égal est utilisé pour comparer deux objets tandis que le hashCode est utilisé dans le hachage pour décider dans quel groupe un objet doit être catégorisé..

CONTENU

1. Vue d'ensemble et différence clé
2. Qu'est-ce qui est égal en Java?
3. Qu'est-ce que hashCode en Java?
4. Comparaison côte à côte - equals vs hashCode en Java sous forme tabulaire
5. Résumé

Qu'est-ce qui est égal en Java??

La méthode equals est utilisée pour comparer deux objets. La méthode equals par défaut est définie dans la classe d'objet. Cette implémentation est similaire à l'opérateur ==. Les deux références d'objet ne sont égales que si elles pointent sur le même objet. Il est possible de remplacer la méthode equals.

Figure 01: Programme Java avec égaux

L'instruction System.out.println (s1.equals (s2)) donnera la réponse fausse car s1 et s2 font référence à deux objets différents. C'était similaire à l'instruction System.out.println (s1 == s2);

L'instruction System.out.println (s1.equals (s3)) donnera la réponse vraie puisque s1 et s3 font référence au même objet. C'était similaire à l'instruction System.out.println (s1 == s3);

Il n'y a pas de méthode d'égalité dans la classe des étudiants. Par conséquent, les égaux dans la classe Object sont appelés. True est affiché uniquement si la référence à l'objet pointe sur le même objet..

Figure 02: Programme Java avec équivalents ignorés

Selon le programme ci-dessus, la méthode equals est remplacée. Un objet est transmis à la méthode et son type est casté à Student. Ensuite, les valeurs id sont vérifiées. Si les valeurs id sont similaires, il retournera true. Sinon, il retournera faux. Les identifiants de s1 et s2 sont similaires. Donc, ça va imprimer vrai. Les identifiants de s1 et de s3 sont également similaires, donc cela affichera true.

Qu'est-ce que hashCode en Java??

Le hashCode est utilisé dans le hachage pour décider dans quel groupe un objet doit être catégorisé. Un groupe d'objets peut partager le même hashCode. Une fonction de hachage correcte peut répartir uniformément les objets dans différents groupes.

Un hashCode correct peut avoir les propriétés suivantes. Supposons qu'il existe deux objets comme obj1 et obj2. Si obj1.equals (obj2) est vrai, alors obj1.hashCode () est égal à obj2.hashCode (). Si obj1.equals (obj2) est faux, il n'est pas nécessaire que obj1.hashCode () ne soit pas égal à obj2.hashCode (). Les deux objets inégaux peuvent aussi avoir le même hashCode.

Figure 03: Classe d'étudiants avec égaux et hashCode

Figure 04: Programme principal

La classe Student contient les méthodes equals et hashCode. La méthode equals de la classe Student recevra un objet. Si l'objet est null, il retournera false. Si les classes des objets ne sont pas les mêmes, la valeur renvoyée est false. Les valeurs id sont vérifiées dans les deux objets. Si elles sont similaires, cela reviendra vrai. Sinon il va retourner faux.

Dans le programme principal, les objets s1 et s2 sont créés. Lors de l'appel de s1.equals (s2) donnera true car la méthode equals est remplacée et vérifie les valeurs id des deux objets. Même s'ils font référence à deux objets, la réponse est vraie car les valeurs id de s1 et s2 sont identiques. Comme la valeur s1.equals (s2) est vraie, le hashCode de s1 et s2 doit être égal. Imprimer le hashCode de s1 et s2 donne la même valeur. La méthode hashCode peut être utilisée avec des collections telles que HashMap.

Quelle est la différence entre equals et hashCode en Java?

est égal à hashCode en Java

equals est une méthode en Java qui agit de manière similaire à l'opérateur ==, qui consiste à tester l'identité de l'objet plutôt que son égalité.. hashCode est une méthode par laquelle une classe décompose de manière implicite ou explicite les données stockées dans une instance de la classe en une seule valeur de hachage..
 Usage
La méthode equals est utilisée pour comparer deux objets. La méthode est utilisée dans le hachage pour décider dans quel groupe un objet doit être placé..

Résumé - égal vs hashCode dans Java

La différence entre equals et hashCode en Java est que l'équal est utilisé pour comparer deux objets, tandis que le hashCode est utilisé dans le hachage pour décider dans quel groupe un objet doit être classé..

Référence:

1. «Java HashCode ().» Wikipedia, Wikimedia Foundation, 17 février 2018.. Disponible ici 
2.Harold, Elliotte Rusty. "La méthode Equals ()." La méthode Equals (), 2 nov. 2001. Disponible ici