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 :

Recupération Infos dans une MAP


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 Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut Recupération Infos dans une MAP
    Voila j'aimerais pour faire des opérations sur des données contenues dans une MAP.
    Pour l'instant j'associe a une clé ( qui est le nom d'une personne) plusieurs intervals contenant deux dates (j'ai crée pour cela une class Interval avec Start et Finish que j'ajoute dans une arraylist avant de le mettre dans la map.

    J'aimerais maintenant pouvoir identifier la date de début et la date de fin de maniere a faire des opérations sur celle ci (soustraction puis suppression de dates dans l'interval afin de compter le nombres de jours).

    Je sais que pour parcourir la liste des valeurs il faut faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //		Pour parcourir les valeurs
    		for (Iterator i = map.values().iterator() ; i.hasNext() ; ){
    		System.out.println( i.next() );
    Resultat :
    [(2006-12-25, ), (2007-01-01, )]
    [(2006-12-25, ), (2007-01-01, ), (2007-03-19, 2007-03-23), (2007-03-26, 2007-03-30)]
    [(WED)]
    [(2007-01-01, ), (2007-01-22, 2007-01-23), (2007-02-19, 2007-02-20), (2007-03-26, 2007-03-27)]
    Mais pour recupérer les deux dates séparemment je bloque.

    Merci beaucoup d'avance

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for (Iterator i = map.values().iterator() ; i.hasNext() ; ) {
      //System.out.println( i.next() );
      List intervalles = (List)i.next();
      for (Iterator j = intervalles.iterator() ; j.hasNext() ; ) {
        Interval intervalle = j.next();
        Start debut = intervalle.getStart();
        Finish fin = intervalle.getFinish();
      }
    }

  3. #3
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci pour ta rapidité !!

  4. #4
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Désolé de ré-ouvrir le sujet , mais j'ai passé la journée a essayer de pouvoir faire cette afichage en fonction des clés sans y arriver.

    J'ai besoin d'identifié les dates en fonction des clés qui est le premier élément de comparaison pourl a suite.

    J'ai essayé un 'For' englobant ce que tu m'a expliqué mais ca ne marche pas.

    J'ai essayé également de cette manière mais j'ai pas réussi a faire mieux que ca , c'est à dire ne pas décomposé les dates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		for(Iterator it = map.entrySet().iterator(); it.hasNext();) {
    			Map.Entry e = (Entry) it.next();
    			Object k = e.getKey();
    			Object v = e.getValue();
    				System.out.println("NOM : "+ k+"   xqsq  "+v);							
    		}
    Merci d'avance !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par Katachana
    Désolé de ré-ouvrir le sujet , mais j'ai passé la journée a essayer de pouvoir faire cette afichage en fonction des clés sans y arriver.

    J'ai besoin d'identifié les dates en fonction des clés qui est le premier élément de comparaison pourl a suite.

    J'ai essayé un 'For' englobant ce que tu m'a expliqué mais ca ne marche pas.

    J'ai essayé également de cette manière mais j'ai pas réussi a faire mieux que ca , c'est à dire ne pas décomposé les dates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		for(Iterator it = map.entrySet().iterator(); it.hasNext();) {
    			Map.Entry e = (Entry) it.next();
    			Object k = e.getKey();
    			Object v = e.getValue();
    				System.out.println("NOM : "+ k+"   xqsq  "+v);							
    		}
    Merci d'avance !
    Salut,

    pour le parcours d'une Map avec comme clé un Objet Couple et comme valeur une List<String> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Map<Couple, List<String>> map;
    j'ai fait comme ceci :
    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
    void afficheMap(){
    	//iterateur sur la map
    	Iterator<Map.Entry<Couple,List<String>>> it = map.entrySet().iterator();
    	while (it.hasNext()){
    	    Map.Entry<Couple,List<String>> pairs = it.next();
    	   //récupere la clé 
               Couple couple = pairs.getKey();
                //affiche le nom et le prénom associé au couple
    	    System.out.print(couple.getNom() + " " + couple.getPrenom() + " : ");
    	    //récupere la valeur
                List<String> liste = pairs.getValue();
    	     //affichage de chaque élement de la liste
                 for(int i=0; i<liste.size(); i++)
    		System.out.print(liste.get(i) + " ");
    	    System.out.println("");
    	}
    }
    Ca pourra peut-être t'aider

  6. #6
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Voila la maniere que j'ai trouvé pour répondre a mon probleme si ca peut aider quelqu'un


    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
    	public void afficheMap(){
    		for(Iterator it = map.entrySet().iterator(); it.hasNext();) {
    			Entry e = (Entry) it.next();
    			Object k = e.getKey();
    			Object v = e.getValue();
    			for (Iterator j = ((AbstractList<GregorianCalendar>) v).iterator() ; j.hasNext() ; ) {
     
    			    Interval intervalle = (Interval) j.next();	
     
    			   String deb=intervalle.getStart();
    			   String finn=intervalle.getFinish(); 
    			   String jour=intervalle.getJour();
     
    			   if(deb!=null && finn!=null){
    				System.out.println("NOM : "+ k+" -- DEbut :   "+deb+"  Fin : "+finn);}
    			   else {
    				System.out.println("NOM : "+k+" -- Jour d'absence : "+jour)  ; 
    			   }
    			}		
    		}
    	}

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2012, 16h17
  2. allocation dans une <map>
    Par elekis dans le forum C++
    Réponses: 3
    Dernier message: 28/09/2005, 22h30
  3. Destruction dans une map
    Par Clad3 dans le forum C++
    Réponses: 3
    Dernier message: 21/08/2005, 08h45
  4. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 11h09
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

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