Blz?
Conforme o que o diego2005 comentou realmente o hashcode pode ser igual para objetos distintos.
Para verificar se dois objetos são iguais é recomendado utilizar os métodos Equal e hashcode. O Hashcode usa um tipo de validação onde é gerado um código considerando o conjunto de atributos da classe. O equals faz a comparação campo a campo.
Blz?
Conforme o que o diego2005 comentou realmente o hashcode pode ser igual para objetos distintos.
Para verificar se dois objetos são iguais é recomendado utilizar os métodos Equal e hashcode. O Hashcode usa um tipo de validação onde é gerado um código considerando o conjunto de atributos da classe. O equals faz a comparação campo a campo.
public int hashCode() {
return 5;
}
é correto, mas num programa real é interessante implementar o método hashcode, pois caso o seu objeto precise ser chave numa tabela hash ele é utilizado para acelerar a pesquisar.
simples vc pode ter objetos onde o equals = false porem com mesmo hashing… pq isso? depende da implementação do hashcode… isso é uma forma ineficiente mais é valido… o eficiente é que objetos = = false retorne hashcode diferente… mais se isso nao acontecer nada impedir de o codigo compilar e executar… apenas quando usar conjuntos, vai perceber o problema para encontrar os objetos, principalmente nas coleções que trabalhar com codigo hashing. como: HashMap, LinkedHashMap etc…