Par rapport à cette question (Efficient hashCode() implementation) J'ai une autre question.Mise en œuvre du code de hachage
J'ai une classe "value" dont les instances sont conservées dans une base de données. Ainsi, les instances de cette classe ont toutes un identifiant unique. En conséquence, j'ai implémenté la méthode du code de hachage (et la méthode equals associée) simplement en retournant cet identifiant.
Lorsque vous utilisez le générateur Eclipse hashcode et dire Eclipse à utiliser uniquement l'attribut d'identification pour la génération J'ai la méthode suivante:
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
Je pense id simplement le retour est plus efficace car je sais que cet ID est unique. Ai-je raison ?
Merci à l'avance
Si le résultat est 1, pourquoi multipliez-vous par résultat. Votre fonction est effectivement "return 31 + id". – Tom
Ce qui d'ailleurs, vous pourriez aussi bien se débarrasser du 31, car il ne modifie pas la distribution de l'ID. En bref, le hashcode que vous avez implémenté ne fait rien de spécial, et vous devriez simplement retourner id. Cela étant dit, je ne suis pas sûr de ce qui serait «mieux». – Tom