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 :

Manipulation un TreeMap


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de nypahe
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Points : 85
    Points
    85
    Par défaut Manipulation un TreeMap
    Bonjour comment manipuler les elts d'un TreeMap donc les valeurs sont les Arraylist.
    Avec arbre.get(1), j'obtiens le 1er ArrayList.
    Je souhaite manipuler cet ArrayList
    Pour avoir access au premier elt de cet ArrayList obtenu précedement, ça ne marche pas : arbre.get(1).get(0);// le systeme propose un getClass() au lieu d'un get(); comment faire
    Question2:
    Comment copier cet ArrayList dans un autre ArrayList c a d
    ArrayList arraylist;
    arraylist = copy(arbre.get(0)) // c pas une commande, juste pour demander comment le faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	TreeMap<Integer, ArrayList> arbre = new TreeMap<Integer, ArrayList>();
     
    		Set cles = arbre.keySet();
    		Iterator iter = cles.iterator();
    		while(iter.hasNext()){
    		System.out.println(" arbre: " + arbre.get(iter.next()));
    		} 
    arbre.get(1)
    Affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    arbre: [000, 001, 011, 111]
     arbre: [010, 110]
     arbre: [100, 101]

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    réponse 1:
    arbre.get(1).get(0) : C'est bien ca pour te ramener le premier élement de ta liste.
    Sur mon Eclipse, ca marche bien, il propose bien. Peut etre une histoire de cast ?

    réponse 2:
    Collections.copy(List<? super T> dest, List<? extends T> src);

  3. #3
    Membre régulier Avatar de nypahe
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par romain_schlick Voir le message
    réponse 1:
    arbre.get(1).get(0) : C'est bien ca pour te ramener le premier élement de ta liste.
    Sur mon Eclipse, ca marche bien, il propose bien. Peut etre une histoire de cast ?

    réponse 2:
    Collections.copy(List<? super T> dest, List<? extends T> src);
    c'est quoi le cast?
    pour la question 2, je ne comprends pas ta reponse
    je precise que c'est copié un elt de l'arbre avec des valeurs Arraylist vers un Arraylist.
    Merci de detaillé plus sur l'exemple, je commence seulement les TreeMap

  4. #4
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    ça ne marche pas : arbre.get(1).get(0);
    Regarde le compliance level de ton projet. Sinon avec un Integer ca marchera nickel étant donné que ta clef est un Integer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arbre.get(Integer.valueOf(1));
    Sinon a propos de cette declaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TreeMap<Integer, ArrayList> arbre = new TreeMap<Integer, ArrayList>();
    Une simple Map comme une simple List doivent faire l'affaire, il ne sert à rien d'etre trop restrictif.
    De plus tu devrais préciser ce que contient ta List. Ca donnerait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map<Integer, List<TonObjet>> arbre = new TreeMap<Integer, List<TonObjet>>();
    Pour ce qui est de la copie, tu peux créer une nouvelle liste vide et appeller addAll(Collection c) sur cette dernière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<TonObjet> copyList = new ArrayList<Object>();
    		copyList.addAll(taListeACopier);
    ++

  5. #5
    Membre régulier Avatar de nypahe
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Points : 85
    Points
    85
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Map<Integer, List<String>> arbre = new TreeMap<Integer, List<String>>();
     
    		Set cles = arbre.keySet();
    		Iterator iter = cles.iterator();
    	List<String> c = new ArrayList<String>();
    	c.addAll((Collection< ?extends String>) arbre.get(0));
    Bonjour
    J'ai un probleme de cast!!!
    comment gerer cet extends

  6. #6
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    T'as pas besoin de faire de cast

  7. #7
    Membre régulier Avatar de nypahe
    Inscrit en
    Novembre 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Heimdal Voir le message
    T'as pas besoin de faire de cast
    Oui, c'est possible
    Mais chez moi, il mets une erreur et propose le Cast( transsypage)
    pour les 2 cas
    ((Map<Integer,List<String>>) arbre.get(1).get(0);et
    c.addAll(arbre.get(1));
    Pq? me demande t'il un transcypage alors que j'utilise java 1.6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map

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

Discussions similaires

  1. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  2. Manipuler JAVA et SSL ?
    Par jah dans le forum Sécurité
    Réponses: 6
    Dernier message: 05/05/2003, 00h30
  3. [VB6]manipuler les semaines en VB ?
    Par kamadji dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2003, 12h33
  4. Réponses: 2
    Dernier message: 18/01/2003, 17h06
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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