Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

HashCode e Equals

Sempre que os métodos HashCode e Equals forem implementados eles devem ser equivalentes em relação aos atributos que serão utilizados para realizar a comparação e a busca? Por exemplo, imaginando uma classe pessoa tendo os atributos nome e idade. Por gerar o HashCode utilizando somente a idade e implementar o equals utilizando estes dois atributos ou vice e versa?

2 respostas
solução!

Oi Saulo,

Os dois precisam ser implementados com base nos mesmos atributos. Se forem diferentes você pode ter problemas ao utilizar um HashSet ou HashMap por exemplo, pois ele poderá não fazer a comparação de igualdade corretamente e gerar valores duplicados dentro dele.

A implementação padrão do hashcode sempre retorna um inteiro diferente para cada objeto.

Abraço!

Legal, minha dúvida era realmente sobre isto, pois percebi que quando mando gerar o HashCode e Equals tanto pelo Eclipse quanto pelo Netbeans ambos implementam para os atributos selecionados. Thanks Joviane ;)