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 :

comment obtenir le nieme element d'une Map


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut comment obtenir le nieme element d'une Map
    Bonjour ,

    voici ma map
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Map <String, Map<String,Integer>> flights2= new HashMap<String, Map<String,Integer>>();
    Je souhaite par exemple apres avoir trouver la premiere branche , pouvoir enumérer tout les items associés à cette branche sous forme de String:

    J 'ai voulu faire qqch en recuperant la size de la map, mais apres ça ne marche plus avec les get :
    je précise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      else if (flights2.containsKey(dp) && !flights2.get(dp).containsKey(ar))
        {
            //un d eux pour commencer
            this.tf_answer.setText("this flight is not direct");
            int mapSize = flights2.get(dp).size() ;
            for (int i=0; i<mapSize ; i++)
            {
                System.out.println(" flights2.get(dp).get(i).toS: "+flights2.get(dp).get(i).toString());
            }
    Mais ça ne marche pas, je n 'arrive pas à trouver la methode

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Les éléments d'une Map n'ont pas d'ordre, donc le "nieme élément" ça n'a pas de sens.
    Par contre tu peux itérer sur le contenu de la Map :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (Integer item : flights2.get(dp).values()) {
      // faire qq chose avec item
    }

  3. #3
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut
    Comment ta derniere technique me permet t elle de jongler element par element ?
    J aurai alors besoin de tester tous les elements presents s'il sont bien egaux à ceci cela. ...
    MErci

  4. #4
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut
    J ai essayé qqch comme ça
    mais cela ne marche pas, meme le getItem renvoie null


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int item : flights2.get(dp).values()) {
    System.out.println(" test : "+ flights2.get(dp).get(item) );
    System.out.println(" key : "+ item ); //çA MARCHE j ai une clef
    System.out.println(" key  values : "+ flights2.get(ar).get(item).toString() ); // mais la en fait meme le getItem renvoie null
            }
    Merci

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Dans ta Map, item est une valeur (cf. .values()), pas la clé. Si tu veux itérer sur les clés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (String key : flights2.get(dp).keySet()) {
      System.out.println(key);
      System.out.println(flights2.get(dp).get(key));
    }

  6. #6
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Salut,

    Tu peux utiliser une LinkedHashMap qui conserve l'ordre d'insertion des éléments dans la Map.

    @++

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/07/2006, 11h25
  2. Comment obtenir dynamiquement le nom d'une classe ?
    Par cquilgars dans le forum C++
    Réponses: 5
    Dernier message: 27/06/2006, 23h37
  3. [MySQL] Recupérer le nieme élément d'une requete
    Par kaygee dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/06/2006, 23h54
  4. Réponses: 4
    Dernier message: 07/01/2006, 18h36
  5. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 11h09

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