Vous devriez probablement utiliser String.hashCode().
Si vous voulez vraiment mettre en œuvre hashCode vous-même:
Ne succombez pas à exclure
des parties d'un objet à partir d'
le code de hachage de calcul pour améliorer
performance -- Joshua Bloch, Efficace Java
En utilisant seulement les cinq premiers caractères est une mauvaise idée. Pensez hiérarchique des noms, tels que les Url: ils ont tous le même code de hachage (parce qu'elles commencent par "http://", ce qui signifie qu'ils sont stockés dans le même seau dans une table de hachage de la carte, présentant terrible de la performance.
Voici une histoire de la guerre paraphrase sur la Chaîne hashCode de "Effective Java":
La Chaîne de hachage une fonction d'
dans toutes les versions antérieures à 1.2 examiné
au plus seize personnages, uniformément
réparties sur toute la chaîne, en commençant
avec le premier caractère. Pour les grands
les collections de l'hiérarchique des noms,
comme Url, cette fonction de hachage
affiche comportement terrible.