Sobes.tech
Junior — Middle

¿Puedes explicar qué significa el método equals en el contexto de comparación de objetos en Java?

sobes.tech AI

Respuesta de la IA

En Java, el método equals se utiliza para comparar el contenido de dos objetos en busca de igualdad. Por defecto, si no se sobrescribe, el método equals de la clase Object compara referencias, es decir, verifica si ambas variables apuntan al mismo objeto en la memoria.

Para comparar objetos por valor (por ejemplo, por los campos de la clase), es necesario sobrescribir el método equals. Es importante seguir el contrato del método: debe ser reflexivo, simétrico, transitivo, consistente y no igual a null.

Ejemplo de sobrescritura de equals en la clase Person:

public class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // comparación consigo mismo
        if (obj == null || getClass() != obj.getClass()) return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(name, other.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

De esta manera, equals permite comparar objetos por su contenido, no por referencia.