IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

problème d'écrassement avec hashmap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Par défaut problème d'écrassement avec hashmap
    salut

    j'ai une hashmap, je store des objets de type Id


    Id contient un champ de type long et string
    seul un de ces deux champs est utilisé selon l'objet qui l'appèle..
    type permet de savoir lequel des deux doit être utilisé... c'est une enum

    j'ai redéfinie la méthode toString de cet objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public boolean equals(Object o) {
            if (o == this) {
                return true;
            }
     
            if (o instanceof Id) {
                Id other = (Id) o;
                if (this.longVal != other.longVal) {
                    return false;
                }
                if (this.stringVal != null) {
                    if (!this.stringVal.equals(other.stringVal)) {
                        return false;
                    }
                }
                if (this.stringVal == null && other.stringVal != null) {
                    return false;
                }
                return true;
            }
            return false;
        }

    j'ai tenté de redéfinir la méthode hashCode pour cet objet


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public int hashCode() {
     
            int hash = 1;
            if (type.equals(Type.longType)) {
                hash = new Long(this.longVal).hashCode();
            }
            if (type.equals(Type.StringType)) {
                hash = new Long(this.stringVal).hashCode();
            }
            return hash;
    }
    j'insère 6 valeur et je commence à avoir des écrassements de valeurs


    une idée pour éviter ce problème?

    merci

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Peux-tu poster le code de test qui insère les 6 valeurs pour pouvoir le reproduire plus vite ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2012, 17h06
  2. Problème avec HashMap
    Par mimish dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 12/12/2011, 16h28
  3. [HashMap] Problèmes avec HashMap (redéfinition de HashCode etc.)
    Par Dominique49 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 01/09/2011, 11h37
  4. Problème avec Hashmap et ArrayList!
    Par Angie73 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 11/05/2008, 21h31
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo