Solucionado (ver solução)
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 ;)