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 :

ContainsKey sur HashMap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut ContainsKey sur HashMap
    Bonjour,

    je rencontre actuellement un problème avec l'utilisation d'un containsKey sur une HashMap.

    Voici mon conde :

    Je possède deux HashMap. Je récupère la liste des clés d'une des HashMap et je veux regarder si chacune de ces clé est contenu dans l'autre HashMap.

    Si je fais ceci, cela ne fonctionne pas :
    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
    	Set setCles = hmConf.entrySet();
    		Iterator itCles = setCles.iterator();
    		while(itCles.hasNext()){
    			log.debug("Entrée dans le while de récupération des clés");
    			String cle = itCles.next().toString();
    			log.debug("Clé de la HashMap Conf : "+cle);	
    			//test si la cle est présente dans la hashMap GED
    			if(hmGED.containsKey(cle)){
    				log.debug("Ajout des datas dans les objets de la HashMap Conf");
    				DocumentCritereVO docCritereGED = (DocumentCritereVO)hmGED.get(cle);
    				DocumentCritereVO docCritereConfig = (DocumentCritereVO)hmConf.get(cle);
    					docCritereConfig.setRib(docCritereGED.getRib());
     
    					//Tri de la liste de date
    					DateComparator comparator = new DateComparator();
    					Collections.sort(docCritereGED.getListeDate(),comparator);
     
    					docCritereConfig.setListeDate(docCritereGED.getListeDate());
    			}else{
    				log.debug("Suppression de l'objet dans la HashMap conf");
    				hmConf.remove(cle);
    			}
    		}
    alors que si je fais ceci, il reconnait bien la clé et rentre bien dans le if:

    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
    Set setCles = hmConf.entrySet();
    		Iterator itCles = setCles.iterator();
    		while(itCles.hasNext()){
    			log.debug("Entrée dans le while de récupération des clés");
    			String cle = itCles.next().toString();
    			log.debug("Clé de la HashMap Conf : "+cle);	
    			//test si la cle est présente dans la hashMap GED
    			if(hmGED.containsKey("RELEV101")){
    				log.debug("Ajout des datas dans les objets de la HashMap Conf");
    				DocumentCritereVO docCritereGED = (DocumentCritereVO)hmGED.get(cle);
    				DocumentCritereVO docCritereConfig = (DocumentCritereVO)hmConf.get(cle);
    					docCritereConfig.setRib(docCritereGED.getRib());
     
    					//Tri de la liste de date
    					DateComparator comparator = new DateComparator();
    					Collections.sort(docCritereGED.getListeDate(),comparator);
     
    					docCritereConfig.setListeDate(docCritereGED.getListeDate());
    			}else{
    				log.debug("Suppression de l'objet dans la HashMap conf");
    				hmConf.remove(cle);
    			}
    		}
    Quelqu'un aurait une idée?
    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Par défaut
    Bonjour,

    quel est le type de la clé dans la HashMap hmConf ?

    Quel est le résultat de la ligne log.debug("Clé de la HashMap Conf : "+cle); ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Citation Envoyé par MigouW Voir le message
    Bonjour,

    quel est le type de la clé dans la HashMap hmConf ?

    Quel est le résultat de la ligne log.debug("Clé de la HashMap Conf : "+cle); ?
    Dans les deux HashMap, les clés sont des String.
    J'ai fais afficher toutes les clés des deux HashMap par le log.debug et voici deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [23/05/11 10:31:14:756 CEST] 000001e8 SystemOut     O 10:31:14,756 DEBUG ConsultationAction : performAction - Clé de la HashMap Conf : RELEV101=com.bnpparibas.dematpro.presentation.viewobject.consultation.DocumentCritereVO@5d775d77
     
    [23/05/11 10:31:14:756 CEST] 000001e8 SystemOut     O 10:31:14,756 DEBUG ConsultationAction : performAction - Clé de la HashMap Conf : RELEV101=com.bnpparibas.dematpro.presentation.viewobject.consultation.DocumentCritereVO@55025502

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Par défaut
    Je ne suis pas sur mais a mon avis, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(hmGED.containsKey(cle)){
    compare les clé sur leurs références et donc renvoie faux.


    Essaye avec la ligne suivante (si ce n'est déjà fait):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(hmGED.containsKey(cle.toString())){
    EDIT :
    Tes HashMap sont elles déclarées en tant que HashMap<String,...> ?
    Tu peux aussi essayer de typer le Set de retour et l'iterator en Set<String> et en Iterator<String>
    Je pense que mon Edit est plus important que la solution proposé avant.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Je viens de réessayer même si j'avais l'impression de l'avoir déjà fait, on sait jamais!
    Mais le résultat est le même!
    Et en plus, je fais déjà un toString() lorsque je récupère la clé via mon Iterator.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Par défaut
    J'ai du Editer pendant que tu essayais(désolé j'ai des lacunes en inteligence parfois, ou tout le temps je sais plus ^^)

    Tes HashMap sont elles déclarées en tant que HashMap<String,...> ?
    Tu peux aussi essayer de typer le Set de retour et l'iterator en Set<String> et en Iterator<String>
    Je pense que mon Edit est plus important que la solution proposé avant.

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

Discussions similaires

  1. containsKey sur une LinkedHashMap
    Par HannibAlBundy dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 23/06/2009, 10h18
  2. Logic iterate sur HashMaps imbriquées
    Par MASSAKA dans le forum Struts 1
    Réponses: 2
    Dernier message: 13/03/2008, 15h17
  3. récupérer nombre itérations vers une valeur sur hashmap
    Par flora806 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/02/2008, 14h43
  4. calcul sur hashmap
    Par flora806 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 16/11/2007, 13h52
  5. [Struts] logic:iterate sur HashMap
    Par romdelf dans le forum Struts 1
    Réponses: 36
    Dernier message: 02/12/2005, 17h03

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