Hashcode [Résolu]

Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
- - Dernière réponse : johnjjj
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
- 5 mai 2010 à 22:39
Bonjour
je veux savoir es que cette méthode hashcode et correcte
je suis débutant
class Dog{
String name,rrr;
int age,id;
Cat prenom;

public int hashCode() {return name.length()+rrr.length()+age+id+prenom.hashCode(); }
}




NB: Cat et une classe

merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
110
3
Merci
Salut,

Absolument pas : si tu as name et rrr de même longueur mais de contenu différent, il te générera le même hascode.

Si tu utilises eclipse, tu peux le générer automatiquement, voici ce qu'il génère :
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + id;
result prime * result + ((name null) ? 0 : name.hashCode());
result prime * result + ((prenom null) ? 0 : prenom.hashCode());
result prime * result + ((rrr null) ? 0 : rrr.hashCode());
return result;
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
110
3
Merci
Salut,

Ben si la variable est nulle, alors elle ne rentre pas en compte dans le calcul du hashcode, sinon, il utilise le hashcode généré par la classe String qu'il ajoute au hashcode déjà généré.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
0
Merci
merci
Commenter la réponse de johnjjj
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
0
Merci
esque vous pouvez m'expliquer le ligne
((name == null) ? 0 : name.hashCode());

merci
Commenter la réponse de johnjjj
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
0
Merci
merci mon chef
Commenter la réponse de johnjjj
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
0
Merci
je suis très desoler pour le derangement si i j écrire commen ca
esque valable


public int hashcode(){return id+age+nom.hashCode()+prenom.hashCode()+rrr.hashCode(); }


merci
Commenter la réponse de johnjjj
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
110
0
Merci
Non c'est pas valable : une simple addition ne suffit pas, regarde le code que je t'ai fournit, c'est la façon de faire : ajouter les hashcode en les multipliant à un nombre premier pour faire un filtre (comme un filtre binaire).


Salut,
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
120
Date d'inscription
dimanche 4 avril 2010
Dernière intervention
24 septembre 2012
0
Merci
Merci mon chef
Commenter la réponse de johnjjj

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.