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 :

Tri d'une HashMap à partir des clés


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Tri d'une HashMap à partir des clés
    Bonjour,

    J'ai une hashmap qui se présente ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HashMap<Groupe, List<Personne>> mapF = new LinkedHashMap<Groupe, List<Personne>>();
    Mon Objet "Groupe" possède un attribut "ordre" et j'aimerais donc trier cette map selon l'ordre de chaque groupe.

    Est ce que c'est possible ? J'ai vu qu'on pouvait utiliser une TreeMap, mais comment indiquer que le tri se fait sur l'ordre ?

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Points : 77
    Points
    77
    Par défaut
    Je te conseille d'utiliser une TreeMap, l'ordre sur les keys est maintenu.

    Ensuite pour instaurer un ordre sur Groupe, je te conseille d'implémenter l'interface Comparable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Groupe implements Comparable<Groupe>{
       private int ordre;
     
       public int compareTo(Groupe autreGroupe){
          return (this.ordre - autreGroupe.getOrdre());
       }
     
       ...
     
    }
    Maintenant si ton accès au set de keys triées est juste très ponctuel par rapport aux insertions/suppressions d'entrées, tu peux aussi simplement récupérer ce set de keys, le trier, et accéder à ta map (une simple HashMap serait alors le meilleur choix) via ces clés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List<Groupe> sortedKeys = new ArrayList<Groupe>(mapF.keySet());
    Collections.sort(sortedKeys);

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup c'est parfait !

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

Discussions similaires

  1. TRI d'une structure à partir des noms
    Par jeff69 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2006, 20h20
  2. Tri d'une JTable pour des nombres
    Par chasse dans le forum Composants
    Réponses: 2
    Dernier message: 20/04/2006, 15h25
  3. Une infobulle à partir des coordonnées sur une image
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/01/2006, 21h20
  4. Réponses: 1
    Dernier message: 23/01/2006, 18h53
  5. réafficher une image à partir des données recupérées
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2005, 10h50

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