Junior — Middle
¿Cómo está implementado el método equals en Java y cómo se usa para comparar objetos?
sobes.tech AI
Respuesta de la IA
En Java, el método equals() está definido en la clase Object y se utiliza para comparar objetos en cuanto a igualdad lógica. Por defecto, compara referencias (es decir, verifica si dos variables apuntan al mismo objeto).
Para una comparación correcta del contenido de los objetos, las clases generalmente redefinen el método equals(), para comparar los campos significativos de los objetos.
Ejemplo de redefinición de equals():
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // comprobación de identidad
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) && field2 == other.field2;
}
Es importante que al redefinir equals(), también se redefina hashCode(), para garantizar el correcto funcionamiento de los objetos en colecciones, por ejemplo, en HashMap.
Uso:
MyClass a = new MyClass(...);
MyClass b = new MyClass(...);
if (a.equals(b)) {
// los objetos se consideran iguales en contenido
}