Considere el siguiente programa Java:
Java
|
Producción:
Not Equal
La razón para imprimir “No igual” es simple: cuando comparamos c1 y c2, se comprueba si tanto c1 como c2 se refieren al mismo objeto o no (las variables de objeto son siempre referencias en Java). c1 y c2 se refieren a dos objetos diferentes, por lo tanto, el valor (c1 == c2) es falso. Si creamos otra referencia, digamos c3 como sigue, entonces (c1 == c3) dará verdadero.
Entonces, ¿cómo verificamos la igualdad de valores dentro de los objetos? Todas las clases en Java heredan de la clase Object, directa o indirectamente (Ver punto 1 de este). los Clase de objeto tiene algunos métodos básicos como clone (), toString (), equals (), .. etc. Podemos anular el método equals en nuestra clase para verificar si dos objetos tienen los mismos datos o no.
Java
|
Producción:
Equal
Como nota al margen, cuando anulamos equals (), se recomienda anular también el método hashCode (). Si no lo hacemos, los objetos iguales pueden obtener diferentes valores hash; y las colecciones basadas en hash, incluidos HashMap, HashSet y Hashtable, no funcionan correctamente (consulte esta para más detalles). Cubriremos más sobre hashCode () en una publicación separada.
Referencias:
Segunda edición de Java eficaz
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.
¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.