Hashcode()

Résolu
SMMM@ Messages postés 13 Date d'inscription lundi 4 janvier 2016 Statut Membre Dernière intervention 1 février 2016 - 10 janv. 2016 à 14:22
informaticien_yassine Messages postés 1 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016 - 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

3 réponses

KX Messages postés 16721 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 août 2023 126
10 janv. 2016 à 15:25
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...
0
SMMM@ Messages postés 13 Date d'inscription lundi 4 janvier 2016 Statut Membre Dernière intervention 1 février 2016
10 janv. 2016 à 19:40
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
0
KX Messages postés 16721 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 août 2023 126
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.
0
SMMM@ Messages postés 13 Date d'inscription lundi 4 janvier 2016 Statut Membre Dernière intervention 1 février 2016 > KX Messages postés 16721 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 août 2023
10 janv. 2016 à 20:18
merci beaucoup :)
0
informaticien_yassine Messages postés 1 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 01:14
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
0
Rejoignez-nous