Les Allergies
Alimentaires
Posez votre question Signaler

HashCode

tsanta 80Messages postés 18 juin 2009Date d'inscription 3 mai 2010Dernière intervention - Dernière réponse le 19 juin 2009 à 18:25
Bonjour,
j´ai un question!peut etre assez stupide mais je ne comprend pas quand on utlise Hashcode().Cette methode apparait tout le temps dans des codes mais je ne comprend pas son sens!java API ne me dis trop de details!
quelqu´un peut donner un code simple avec des commentaire!!!
merci bcp!!!
Lire la suite 

HashCode »

Suggestions
3 réponses
Réponse
+3
moins plus
Bonjour,

la méthode hashCode retourne un entier qui permet à des conteneurs de 'classer' les objets qu'il contient et ainsi de les retrouver plus rapidement. C'est particulier le cas de tous les conteneurs dont le nom commence par 'Hash' (p. ex. HashSet, HashMap, ...). Ces conteneurs peuvent contenir des objets sur lesquels un ordre n'est pas forcément défini (et facile à définir) contrairement aux conteneurs dont le nom commence par 'Tree'.

Selon l'API Java, la méthode hashCode doit respecter les contraintes suivantes :
- le nombre généré (le hashCode) doit rester le même d'un appel à l'autre tant que l'on ne change pas un élément (donnée membre) utilisé par la méthode de comparaison,
- deux objets égaux au sens de la méthode 'equals' doivent retourner le même hashCode.
- deux objets inégaux au sens de la méthode 'equals' peuvent avoir le même hashCode (et c'est pourquoi le hashCode, qui ressemble à un identificateur, n'est est pas un).

Il est important de bien définir cette méthode si l'on désire placer les objets d'une classe dans des conteneurs de manière efficace et performante. Moins il y aura de 'colisions' dans les hashCodes plus rapide seront les opérations sur les conteneurs.

Voilà, j'espère avoir pu vous aider.

Cordialement
Ajouter un commentaire
Réponse
+0
moins plus
merci bcp!!!!
tu peux peut etre donne un exmeple de code!tu peux illustrer avec un exemple stppp!Si je ne demande pas trop!parce ke moi je suis vraiment nulle !Ouais je suis debutante!!
Ajouter un commentaire
Réponse
+0
moins plus
Voici un exemple trouvé sur le net : http://www.geocities.com/technofundo/tech/java/equalhash.html

Dans cet article il est préconisé d'implémenté la méthode hasCode dès que l'on définit la méthode equals ce qui est logique étant donné les contraintes et l'utilisation de hashCode (cf. API de la classe Object de Java). En pratique il m'est régulièrement arrivé de définir equals sans redéfinir hashCode. En pratique je n'utilisais que très rarement les conteneur de type Hash, leur préférant ceux de type Tree (en définissant Comparable ou une classe implémentant Comparator). Cela dépend de l'application. Je vous conseille tout de même de suivre les préconisations de l'article. Pour connaître de bonnes méthodes de hashage il existe des articles sur le net.

Cordialement
Ajouter un commentaire
Ce document intitulé « HashCode » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?