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 :

Remplissage de HashMap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut Remplissage de HashMap
    Bonjour,

    J'ai un souci lors du remplissage de mes HashMap:

    j'ai essayé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(int j=0; j<getCoreSoftware(fullCoreSoftware).size(); j++) {
       if(!coresoftwareVersionMap.keySet().contains(getCoreSoftware(fullCoreSoftware).get(j))) {
             JOptionPane.showMessageDialog(panelAuto, getCoreSoftware(coreSoftware).get(j));
             coresoftwareVersionMap.put(getCoreSoftware(fullCoreSoftware).get(j), version);
       }
    }
    Ensuite, je mets de JOptionPane pour vérifier que mes keys donnent bien des values.
    Je me rends compte que lorsque les values sont identiques, seule la première fois où je la rentre dans la HashMap est prise en compte.
    A chaque fois que j'essaie d'affecter une même value (ici version) à différentes keys, ça ne marche que pour la première key et ensuite, il affecte aux autres keys la valeur null. Lorsque la value (version) change, le problème n'apparait plus.

    Est-il impossible d'attribuer une même value pour différentes keys dans les HashMap?

    Si c'est le cas, quelqu'un connaitrait une façon de faire pour contourner le problème?
    Merci pour tous les renseignements que vous pourriez me donner :-)


    EDIT: en regardant dans les API java, dans l'interface Map, je remarque qu'il doit y avoir unicité de la cléf, mais pas de la value?? Plusieurs keys différentes peuvent être liées à une même value, non?

  2. #2
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    En fait je ne sais pas comment comprendre "unicité de la clée" que je peux lire dans les APi java : est ce que ça veut dire que pour une valeur, il y a une cléf unique, ce qui revient à l'unicité de la valeur et non de la cléf, ou bien, il ne peux y avoir qu'une seule fois le même objet en tant que clef dans la HashMap, et donc pour une seule clef, il est possible d'avoir des valeurs différentes?

    Je crois que la réponse à cette quesiton me résoudra une grosse partie du problème...

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Par défaut
    Bonjour,

    Est-il impossible d'attribuer une même value pour différentes keys dans les HashMap?
    Oui, les clés doivent être différentes mais les valeurs peuvent être identiques.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            Map map = new HashMap();
            String s1 = "String1";
            String s2 = "String2";
            String s3 = "String3";
            String s4 = "String4";
     
            map.put(s1,s1); // String1 = String1
            map.put(s1,s2); // String1 = String1 => String2
            map.put(s3,s2); // String3 = String2
            map.put(s4,s2); // String4 = String2
    Au final tu as :
    - String1 = String2
    - String3 = String2
    - String4 = String2
    Donc 3 fois la même valeur pour 3 clés différentes.

  4. #4
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    OK Merci beaucoup, tu as totalement résolu mon problème.

    Ce que j'ai fais : Ben du coup exactement le contraire: j'ai stocker mes valeurs dans les keys et mes cléfs dans mes keys et je retrouve la cléf à partir de la valeur avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(String key: myDialog.getVersionCoresoftwareTable().keySet()) {
         if(myDialog.readIdentPN().equals(myDialog.getVersionCoresoftwareTable().get(key))) {
                version=key;
         }
     }
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème au niveau du remplissage de HashMap
    Par momjunior dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 12/01/2015, 23h01
  2. [HashMap] lecture d'1 hasmap et remplissage d'un tableau
    Par _KB_ dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 30/06/2006, 19h33
  3. Réponses: 7
    Dernier message: 17/01/2004, 17h13
  4. Réponses: 13
    Dernier message: 14/10/2003, 14h31
  5. Réponses: 11
    Dernier message: 04/08/2003, 15h30

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