4 votes

Une fonction de hachage efficace

J'ai un Employee avec de nombreux attributs. L'un de ces attributs est employeeId qui est de type int .

Puis-je avoir une fonction hascode pour Employee comme suit ?

int hashCode(){
    return new Integer(employeeId).hashCode();
}

Est-il efficace ?

0voto

Parker Points 1369

Tant qu'il fonctionne comme prévu, et qu'il ne vous pose pas de problème, alors oui.

EDIT : Regardez http://mindprod.com/jgloss/hashcode.html y http://www.javamex.com/tutorials/collections/hash_function_guidelines.shtml

0voto

mezmo Points 1678

Je ne pense pas, je sais que Java est censé avoir l'allocation de nouvel objet la plus rapide de l'ouest, mais c'est une allocation inutile. En supposant que deux objets entiers ayant la même valeur renvoient le même code de hachage, je ne vois pas pourquoi ce ne serait pas le cas, mais en lisant la Javadoc, je ne vois aucun langage qui les obligerait à avoir le même code de hachage.

return Integer.valueOf(employeeId).hashCode();

car c'est censé être plus efficace que le neuf dans certains cas. Bien que je sois d'accord pour dire que renvoyer l'identifiant de l'employé serait la meilleure solution, comme Mercy et Steven C l'ont suggéré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X