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
}
}