Hashcode

Résolu
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012 - 5 mai 2010 à 16:31
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre 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

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 17:04
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
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 18:58
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
3
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 mai 2010 à 18:08
merci
0
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 mai 2010 à 18:18
esque vous pouvez m'expliquer le ligne
((name == null) ? 0 : name.hashCode());

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 mai 2010 à 19:37
merci mon chef
0
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 mai 2010 à 19:56
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 19:58
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
0
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 mai 2010 à 22:39
Merci mon chef
0
Rejoignez-nous