Diferencia entre iguales y hashCode en Java

Diferencia clave - es igual a vs hashCode en Java
 

El igual es similar al operador ==, que consiste en probar la identidad del objeto en lugar de la igualdad del objeto. El hashCode es un método por el cual una clase desglosa implícita o explícitamente los datos almacenados en una instancia de la clase en un solo valor de hash, que es un entero con signo de 32 bits. los diferencia clave entre iguales y hashCode en Java es eso el igual se usa para comparar dos objetos, mientras que el código de hash se usa en hash para decidir en qué grupo se debe clasificar un objeto.

CONTENIDO

1. Resumen y diferencia clave
2. Lo que es igual en Java
3. Qué es hashCode en Java
4. Comparación lado a lado - es igual a hashCode en Java en forma tabular
5. Resumen

Lo que es igual en Java?

El método de iguales se utiliza para comparar dos objetos. El método por defecto igual se define en la clase de objeto. Esa implementación es similar al operador ==. Las dos referencias de objeto son iguales solo si están apuntando al mismo objeto. Es posible anular el método de iguales..

Figura 01: Programa Java con iguales

La declaración System.out.println (s1.equals (s2)) dará la respuesta falsa porque s1 y s2 se refieren a dos objetos diferentes. Era similar a la declaración, System.out.println (s1 == s2);

La declaración System.out.println (s1.equals (s3)) dará la respuesta verdadera porque s1 y s3 ​​se refieren al mismo objeto. Era similar a la declaración, System.out.println (s1 == s3);

No hay un método igual en la clase de estudiantes. Por lo tanto, se llama a los iguales en la clase Object. Verdadero se muestra solo si la referencia del objeto apunta al mismo objeto.

Figura 02: Programa Java con iguales anulados

De acuerdo con el programa anterior, el método equals está anulado. Un objeto se pasa al método, y es un tipo fundido a Estudiante. Luego, se verifican los valores de id. Si los valores de identificación son similares, devolverá verdadero. Si no, devolverá falso. Los identificadores de s1 y s2 son similares. Por lo tanto, se imprimirá verdadero. Los identificadores de s1 y s3 ​​también son similares, por lo que se imprimirán verdaderos.

Qué es hashCode en Java?

El hashCode se utiliza en el hash para decidir a qué grupo debe categorizarse un objeto. Un grupo de objetos puede compartir el mismo código hash. Una correcta función de hash puede distribuir uniformemente los objetos en diferentes grupos..

Un hashCode correcto puede tener las siguientes propiedades. Supongamos que hay dos objetos como obj1 y obj2. Si obj1.equals (obj2) es verdadero, entonces obj1.hashCode () es igual a obj2.hashCode (). Si obj1.equals (obj2) es falso, no es necesario que obj1.hashCode () no sea igual a obj2.hashCode (). Los dos objetos desiguales también pueden tener el mismo código hash.

Figura 03: Clase de estudiantes con equals y hashCode

Figura 04: Programa Principal

La clase de estudiante contiene los métodos equals y hashCode. El método de iguales en la clase de Estudiante recibirá un objeto. Si el objeto es nulo, devolverá falso. Si las clases de los objetos no son las mismas, devolverá false. Los valores de identificación se verifican en ambos objetos. Si son similares, devolverá verdadero. De lo contrario volverá falso..

En el programa principal, se crean los objetos s1 y s2. Al llamar a s1.equals (s2), se dará verdadero porque el método de iguales está anulado y verifica los valores de identificación de los dos objetos. Aunque se refieren a dos objetos, la respuesta es verdadera porque los valores de id de s1 y s2 son los mismos. Como s1.equals (s2) es verdadero, el hashCode de s1 y s2 debe ser igual. Al imprimir el código hash de s1 y s2 se obtiene el mismo valor. El método hashCode se puede usar con colecciones como HashMap.

¿Cuál es la diferencia entre iguales y hashCode en Java??

es igual a hashCode en Java

equals es un método en Java que actúa de manera similar al operador ==, que consiste en probar la identidad del objeto en lugar de la igualdad de los objetos.. hashCode es un método mediante el cual una clase desglosa implícita o explícitamente los datos almacenados en una instancia de la clase en un solo valor de hash.
 Uso
El método igual es usado para comparar dos objetos.. El método se utiliza en el hash para decidir en qué grupo se debe colocar un objeto.

Resumen - es igual a vs hashCode en Java

La diferencia entre equals y hashCode en Java es que se usa equals para comparar dos objetos, mientras que el hashCode se usa para calcular el grupo en el que se debe clasificar un objeto..

Referencia:

1. “Java HashCode ().” Wikipedia, Wikimedia Foundation, 17 de febrero de 2018. Disponible aquí 
2.Harold, Elliotte Rusty. "El Método de Igualdad ()". El Método de Igualdad (), 2 de noviembre de 2001. Disponible aquí