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