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


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Par défaut Tri d'une HashMap
    Salut tout le monde je bloque sur les Hash map.

    J'ai une classe Mot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Mot {
        public String nom;
     
        /** Creates a new instance of Mot */
        public Mot(String nom) {
            this.nom=nom;
        }
        public String toString(){
            return nom;
        }
        public String getNom(){
            return nom;
        }
    }
    Puis dans le main je crée 3 mots et je crée mon HashMap


    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
     
        /** Creates a new instance of Main */
        public Main() {
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
        Mot souris = new Mot("souris");
        Mot clavier = new Mot("clavier");
        Mot tour= new Mot("tour");
        Index i = new Index();
        ComparerMot cm = new ComparerMot();
        HashMap<Mot, Integer> mapi = new HashMap<Mot, Integer>();
     
        mapi.put(clavier,2);
        mapi.put(souris,1);
        mapi.put(tour,3);
     
        System.out.println(mapi);
        }
    }
    Le HashMap d'après ce que j'ai compris tri de manière automatique la clé. Ici la clé est mot mais comment peut-il trier des mots vu qu'il ne sais pas ce que c'est ???
    J'ai essayé de mettre la méthode compareTo dans la classe Main en disant bien que la classe Mot implements Comparable mais ça marche pas.
    Je séche si vous avez la solution merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Par défaut
    je suis désole c'est en faite une TreeMap qu'il faut...

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par jayjay78 Voir le message
    je suis désole c'est en faite une TreeMap qu'il faut...
    Et il faudra définir un comparator pour le tri.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Par défaut
    Merci de ta réponse millie.

    J'ai bien avancé sur mon programme mais la comparaison j'ai du mal.

    Je vous montre ce que j'ai fait, là je sais pas du tout quoi corriger.


    La classe Index contient donc une ArrayList nommée i qui contient des entrées. Je veux trier cette ArrayList par ordre alphabétique.

    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
     
    package partielles;
    import java.util.*;
     
     
     
    public class Index {
        ArrayList<Entree> i = new ArrayList<Entree>();
        /** Creates a new instance of Index */
        public Index() {
     
        }
        //public String toString(Entree e){
        //    return e.getNom();
        //}
     
        public void afficher(){
            for (Entree current: i){
                current.afficher();
            }
        }
    }
    Voici la classe entrée avec un String nom qui doit me servir à trier.
    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
     
    package partielles;
     
    /**
     *
     * @author joffrey
     */
    public abstract class Entree   {
        private String nom;
        /** Creates a new instance of Entree */
        public Entree(String nom) {
            this.nom=nom;
        }
     
     
        public String getNom(){
            return nom;
        }
        public String toString(){
            return nom;
        }
        abstract public void afficher();
    }
    Voilà le comparateur je redéfinie compare.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    package partielles;
    import java.util.*;
     
    public class ComparateurNom implements Comparator<Entree> {
     
        /** Creates a new instance of ComparateurNom */
        public ComparateurNom() {
        }
        public int compare(Entree un, Entree deux){
            return un.getNom().compareTo(deux.getNom());
        }
    }
    Dans le main je fais comme ça et j'ai une erreur à Collections.sort :
    symbol : method sort(partielles.Index,partielles.ComparateurNom)
    location: class java.util.Collections
    Collections.sort(ind,compareNom);


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Index ind = new Index();
     
            ComparateurNom compareNom = new ComparateurNom();
            Collections.sort(ind,compareNom);
    Voilà je bloque complètement sur ça, j'éspère avoir été claire.

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Collections.sort prend en entrée une Collection (donc par exemple ton ArrayList contenu dans ta classe Index).

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Par défaut
    Citation Envoyé par millie Voir le message
    Collections.sort prend en entrée une Collection (donc par exemple ton ArrayList contenu dans ta classe Index).
    Merci beaucoup j'ai passé une heure sur ça juste parce que il fallait que je mette
    ind.i.
    Je suis pas fait pour le Java je crois lol.

Discussions similaires

  1. Tri d'une HashMap à partir des clés
    Par Eithne dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 15/06/2011, 16h40
  2. Tri d'une requête UNION
    Par MasterOfChakhaL dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/08/2004, 10h26
  3. [débutant] cherche a copier une HashMap
    Par mathieublanc13 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2004, 14h33
  4. tri d'une liste
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2003, 18h08

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