Objetos iguais = hashcode

Pessoal,
Encontrei a seguinte situação em um simulado:
Ambas afirmativas.

1) Equal objects must produce the same hashcode  
2) Unequal objects need not produce distinct hashcodes

A 1 esta correta, porque objetos iguais tem que ter o mesmo hashcode, mas a situação 2 não ficou clara !?
Alguém poderia esclarecer ?
Obrigado.

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+

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.

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.

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.

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…

flw!!