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 :

List HashMap déclaration récupération


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut List HashMap déclaration récupération
    Bonjour,

    Je voudrais crée une liste contenant 2 HashMap, l'un correspondant à "droite" l'autre "gauche":

    Voici la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    protected HashMap<String, HashMap<String, MaClasse>> liste = new HashMap<String, HashMap<String, MaClasse>>();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HashMap<String, MaClasse> listedroitier;
    HashMap<String, MaClasse> listegaucher;
     
    liste.put("droitier",listedroitier);
    liste.put("gaucher",listegaucher);
    Est-ce ces déclarations sont correctes?

    Comment faire pour récupérer un élément de la liste?

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Par défaut
    Salut, voila comment je ferais pour faire ce que tu veux.


    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
     
            ArrayList<HashMap> liste = new ArrayList<HashMap>();
     
            HashMap gauchers = new HashMap<Object,Object>();
            HashMap droitiers = new HashMap<Object,Object>();
     
            gauchers.put("gaucher1", "value1");
            droitiers.put("droitier1", "value1");
     
            liste.add(gauchers);
            liste.add(droitiers);
     
            //Retrouver les maps dans la liste :
            HashMap mapGauchers = liste.get(0);
            HashMap mapDroitiers = liste.get(1);
    A la limite tu pourrais mettre tes maps dans une map.
    Ca serait plus propre et plus facile pour retrouver ce que tu as besoin

  3. #3
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    les declarations sont juste mais il faut instancier listedroitier et listegaucher avant de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    liste.put("droitier",listedroitier);
    liste.put("gaucher",listegaucher);
    pour parcouris votre Hashmap tu fais:
    et cela va te retourner une hashmap de tout les droitier si j'ai bien compris

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Par défaut
    A la limite tu pourrais mettre tes maps dans une map.
    Oui enfait c'est ce que tu fais. Confusion à cause du nom de variable liste.

    Ben c'est correct enfait ce que tu as fais. (pas oublier les instanciations)
    Et pour retrouver un élément c'est bien comme l'a dit anisj1m

  5. #5
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Si tu n'as que 2 types d'objets, autant faire un objet englobant qui contient tes 2 maps. Ca sera plus pratique à manipuler qu'une map de maps.

    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
     
    public class Conteneur {
     
       private Map droitier = new HashMap<String,MaClasse>();
       private Map gaucher = new HashMap<String,MaClasse>();
     
       // + getters, éventuellement setters, et surtout des méthodes du genre :
       public MaClasse getFromDroitier(String string) {
          return droitier.get(string);
      }
     
      public MaClasse putInDroitier(String string, MaClasse maClasse) {
         return droitier.put(string, maClasse);
      }
     
    }
    L'avantage c'est que ça se manipule proprement et intuitivement, et que tu peux masquer complètement les maps (ce qui permet de sécuriser le code vis à vis de bêtises).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    Si je déclare cela, est ce que ma map sera initialisé avec la méthode set?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public HashMap<String, MaClasse> listedroitier;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	public void setMap(HashMap<String, MaClasse> lis) {
    		listedroitier = lis;
    	}

  7. #7
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    et bahhh, si ta méthode set... est invoqué alors elle vas être inistialisé

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

Discussions similaires

  1. [MySQL] liste déroulantes et récupération de valeurs
    Par piotrowski-s dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/08/2012, 15h35
  2. [Stockage] String, Object, List, HashMap
    Par gojira dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/06/2010, 01h17
  3. Enlever doublon liste hashMap
    Par stephane92400 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/07/2009, 14h11
  4. Réponses: 2
    Dernier message: 21/07/2009, 10h40
  5. itération hashmap et récupération values
    Par flora806 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 17/03/2008, 10h58

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