Hashcode() [Résolu]

SMMM@ 13 Messages postés lundi 4 janvier 2016Date d'inscription 1 février 2016 Dernière intervention - 10 janv. 2016 à 14:22 - Dernière réponse : informaticien_yassine 1 Messages postés dimanche 10 janvier 2016Date d'inscription 11 janvier 2016 Dernière intervention
- 11 janv. 2016 à 01:14
bonsoir svp j'ais deux question
c'est quoi un hashcode???!
ce que signifie un moniteur on java ??! et merci d'avance
Afficher la suite 
13Messages postés lundi 4 janvier 2016Date d'inscription 1 février 2016 Dernière intervention

5 réponses

Répondre au sujet
KX 15088 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 10 janv. 2016 à 15:25
0
Utile
Bonjour,

Un hashcode est un entier avec ces propriétés :
  • Si x1.equals(x2) alors x1.hashCode()==x2.hashCode()
  • Si x1.hashCode()!=x2.hashCode() alors !x1.equals(x2)

Même si ce n'est pas obligatoire, on devrait avoir "le plus souvent possible"
  • Si !x1.equals(x2) alors x1.hashCode()!=x2.hashCode()
  • Si x1.hashCode()==x2.hashCode() alors x1.equals(x2)

Cela permet de faire des optimisations, car comparer exhaustivement deux objets peut être coûteux quand il y a beaucoup de champs à comparer.
La comparaison de deux hashCode étant plus légère cela permet en général de déterminer que deux objets sont différents sans avoir à utiliser la méthode equals.

"ce que signifie un moniteur on java"
Pour moi ça ne veut rien dire, il va falloir être plus précis...
Commenter la réponse de KX
SMMM@ 13 Messages postés lundi 4 janvier 2016Date d'inscription 1 février 2016 Dernière intervention - 10 janv. 2016 à 19:40
0
Utile
2
merci KX
pour le moniteur j'ai trouver quelque part dans un cour la méthode notify() Cette méthode est appelée uniquement dans un moniteur permettant de réveiller l’un d’entre les processus qui se sont fait bloquer dans ce même moniteur.et j'ai pas bien compris ça
KX 15088 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 10 janv. 2016 à 20:06
Le "moniteur" c'est le verrou associé à chaque objet quand il est utilisé pour faire de la synchronisation (en vieux Java).

Voir Intrinsic Locks and Synchronization.

Depuis Java 5 les packages java.util.concurrent fournissent un grand nombre de classes dédiés à la gestion de la concurrence.

Voir High Level Concurrency Objects

Il ne devrait donc plus être nécessaire d'utiliser les méthodes wait, notify, notifyAll ni le mot clé synchronized qui sont difficiles à comprendre et dont une mauvaise utilisation peut entraîner de nombreux bugs difficiles à corriger.
SMMM@ 13 Messages postés lundi 4 janvier 2016Date d'inscription 1 février 2016 Dernière intervention > KX 15088 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 10 janv. 2016 à 20:18
merci beaucoup :)
Commenter la réponse de SMMM@
informaticien_yassine 1 Messages postés dimanche 10 janvier 2016Date d'inscription 11 janvier 2016 Dernière intervention - 11 janv. 2016 à 01:14
0
Utile
hashcode sera utile lorsque on veut par exemple faire une set sans répétition pour etre sur de cette condition on a besoin d'un equal et hashcode
Commenter la réponse de informaticien_yassine

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.