Junior
O que faz o método equals() ?
sobes.tech IA
Resposta da IA
O método equals() em Java compara dois objetos para verificar se são iguais.
Por padrão (na classe Object), verifica se as referências aos objetos são iguais (se apontam para a mesma instância na memória).
As classes podem redefinir este método para determinar a igualdade lógica dos objetos com base no seu conteúdo (por exemplo, dois objetos String são considerados iguais se contiverem a mesma sequência de caracteres, mesmo que sejam instâncias diferentes).
Ao redefinir equals(), também é necessário redefinir o método hashCode() para cumprir o seguinte acordo: se dois objetos são iguais segundo equals(), então seus métodos hashCode() devem retornar valores iguais.
Exemplo de redefinição:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Comparação de referências
if (o == null || getClass() != o.getClass()) return false; // Verificação de null e comparação de tipos
MyClass myClass = (MyClass) o; // Casting
return value == myClass.value; // Comparação lógica pelo campo value
}
@Override
public int hashCode() {
return Objects.hash(value); // Geração do hash
}
}