Sobes.tech
Junior

¿Qué hace el método equals()?

sobes.tech AI

Respuesta de la IA

El método equals() en Java compara dos objetos para verificar si son iguales.

Por defecto (en la clase Object), verifica si las referencias a los objetos son iguales (si apuntan al mismo ejemplar en memoria).

Las clases pueden redefinir este método para determinar la igualdad lógica de los objetos basada en su contenido (por ejemplo, dos objetos String se consideran iguales si contienen la misma secuencia de caracteres, incluso si son instancias diferentes).

Al redefinir equals(), también es necesario redefinir el método hashCode() para cumplir con el siguiente acuerdo: si dos objetos son iguales según equals(), entonces sus métodos hashCode() deben devolver valores iguales.

Ejemplo de redefinición:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Comparación de referencias
        if (o == null || getClass() != o.getClass()) return false; // Verificación de null y comparación de tipos
        MyClass myClass = (MyClass) o; // Casting
        return value == myClass.value; // Comparación lógica por el campo value
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Generación del hash
    }
}