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 :

Ne pas Trier une Map


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Ne pas Trier une Map
    Bonjour,

    J'ai remarqué que beaucoup de discussions sont créés pour savoir comment trier une Map correctement, mon problème c'est l'inverse.

    Je dispose d'une variable de type Map<String,DataProp> instanciée en HashMap<String,DataProp> dans laquelle j'insère des données avec la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataPropList.put(aDataProp.getName(), aDataProp);
    Avant chaque insertion, je contrôle la clé de type String de la donnée insérée dans mes logs et j'ai :
    C
    A
    B

    Après la suite d'insertion je me retrouve avec une Map trié sur ses clés par ordre Alphabétique, je sais que c'est le tri naturelle.
    A
    B
    C

    J'aimerais savoir comment je peux garder un tri par ordre d'insertion uniquement.

    J'ai testé de définir un comparateur en utilisant une TreeMap mais je n'y arrive pas.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Comment tu parcours ton HashMap pour affirmer ça? D'ailleurs A B C correspondent aux clés ou valeurs?
    Normalement c'est le SortedMap qui fait un trie suivant les clés.

    A+.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Sinon, utilise un LinkedHashMap à la place du HashMap.

    A+.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Salut,

    je contrôle la clé de type String
    Ce sont les clés que j'affiche dans mes logs, elles sont de type String, elles représentent le noms de mes objets de type DataProp.

    Avant chaque ligne d'insertion je fais simplement un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log.info(aDataProp.getName());
    et après avoir fait toutes mes insertion je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log.info(dataPropList.entrySet().toString());
    J'utilise l'API log4j pour mes logs.

    Bien sur la fonction entrySet().toString() ne me donne pas exactement :
    A
    B
    C

    Mais plutot : [A = ..., B = ... , C = ... ] mais c'était pour simplifier.

    Je vais tester une LinkedHashMap !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Et voilà problème résolu !!

    La LinkedHashMap est parfaite pour mon cas, l'ordre naturel de tri est celui des insertions.

    Merci Andry
    A+

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

Discussions similaires

  1. Trier une Map sur les valeurs de façon décroissante
    Par ddams dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 27/12/2011, 19h33
  2. Trier une Map<Long, String> par rapport aux données
    Par zuzuu dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 26/03/2009, 11h03
  3. trier une map
    Par xduris dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 18/07/2008, 10h51
  4. Trier une map sur valeur int
    Par totoche dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 09/05/2008, 12h54
  5. Trier une map
    Par lili2704 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/04/2008, 14h23

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