Sobes.tech
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
}