Objetos diferentes podem ou não produzir o mesmo hashCode, pois o método hashCode pode retornar o mesmo número para todos os objetos:
public int hashCode() {
return 5;
}
Apesar desse exemplo ser péssimo, ele é válido.
T+
T
thiagomont
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.
Espero cque tenha ajudado.
T
thiagomont
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.
Espero que tenha ajudado.
leofernandesmo
usar:
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.
LPJava
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…