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 :

TreeMap ou HashMap?


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 Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut TreeMap ou HashMap?
    Salut,
    J'aimerais savoir si il existe un composant java qui permette, comme TreeMap ou HashMap de stocker des données associées par paire. Je demande ceci car j'ai un léger problème avec ces 2 composants. Le HashMap ne trie absolument rien et ressort les paires dans la plus totale anarchie. Le TreeMap effectue de lui même un tri alphabétique, moi, ce que je cherche, c'est un composant qui stocke les valeur dans l'ordre dans lequel je les lui donne. Est-ce que ce composant existe?
    Merci.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    A partir du JDK 1.4 tu peux utiliser les LinkedHashMap...


    a++

  3. #3
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut
    C'est super, un grand merci.

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    [EDIT] je viens de voir la réponse d'adiGuba et je me rends compte que je suis passé complètement à côté
    Désolé ...



    Tu peux utiliser un hashSet et redéfinir la méthode compareTo de tes objets Clé. (je te conseille de redéfinir equals et hashcode aussi pour etre cohérent)

    Enfin je veux dire, si ta clé est par exemple :
    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
    22
    23
    24
    25
     
    public Key {
     
          String a1 = null;
          Integer a2 = null;
     
          // un constructeur
     
         // la méthode compareTo a redefinir
        public int compareTo(Object o2) {
     
    		if(this.equals(o2))
    			return 0;
     
    		return this.compareTo((Key) o2);
    	}
     
       public int compareTo(Key k2){
             if(this.a1.compareTo(k2.a1)==0){
                 return this.a2.compareTo(k2.a2);
             } else {
                 return this.a1.compareTo(k2.a1);  
             }
       }
    }
    et que tu t'en sers dans un Set (enfin je crois), il va les ranger correctement.

    Tu peux également récupérer les clés de ta structure dans une collection et appliquer la méthode sort(). Tu parcours ensuite cette collection pour interroger ton Map dans l'ordre.

    En espérant que ça t'aide ...

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par Empty_body
    Le TreeMap effectue de lui même un tri alphabétique
    Petite précision :

    Le TreeMap effectue "par défaut" un tri alphabétique.
    Mais il y a le constructeur TreeMap(Comparator c) qui te permet de filer ce que tu veux comme comparateur et donc de faire un tri personnalisé.

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

Discussions similaires

  1. [TreeMap] comparer et fusionner deux TreeMap
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 06/09/2004, 11h49
  2. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41
  3. [HashMap] Modification d'objet d'une Hashtable
    Par viena dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/07/2004, 09h04
  4. Surcharge de l'égalité et HashMap
    Par olivierM dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 10/06/2004, 09h54
  5. [débutant] cherche a copier une HashMap
    Par mathieublanc13 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2004, 14h33

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