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 :

Trier une map sur valeur int


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut Trier une map sur valeur int
    Bonjour,
    Je tente de trier une map selon ses valeurs dans l'ordre décroissant.
    Ces valeurs sont des objets de types entier.
    j'ai repris le post :http://www.developpez.net/forums/showthread.php?t=57800dans ce post 'elitost' utilise un TreeSet, j'uitilise une hashmap et
    le probleme c'est que la HashMap n'implemente pas comparator...
    Merci pour vos suggestions

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    int est un type primitif, et non un objet, donc tu ne peux pas appeler de méthodes dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        static final Comparator ordreCpt = new Comparator() {
            public int compare(Object o1, Object o2){   
                return ((Compteur)o1).getValeur() - ((Compteur)o2).getValeur();
            }
        };

  3. #3
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Merci,
    j'ai pense avoir rectifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     return(new Integer(((Compteur)o1).getValeur())).compareTo(new Integer(((Compteur)o2).getValeur()));
            }
    Cependant un problème demeure quand a l'utilisation de comparator dans une hashmap, non?

  4. #4
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Y a vraiement tout sur ce site :
    http://bruce-eckel.developpez.com/li...hap=10&page=11
    dans quelques heures je devrait y arriver

  5. #5
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Ma HashMap se compose d'un couple
    cle objet membre
    valeur objet compteur (type integer)

    je viens d'adapter la solution proposé par djo.mo
    mais j'ai l'erreur :
    public class CompteurComparator implements Comparator n'est pas abstraite...
    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
     
     
    public class CompteurComparator implements Comparator{
        private Map membres;//pour garder une copie du Map que l'on souhaite traiter
     
        public CompteurComparator(Map membres){
        this.membres = membres; //stocker la copie pour qu'elle soit accessible dans compare()
        }
     
        public int compare(Membre m1, Membre m2){
            //Compteur
            Compteur cpt1 = (Compteur)membres.get(m1);
            Compteur cpt2 = (Compteur)membres.get(m2);
     
            if(cpt1.getValeur() < cpt1.getValeur())
              return -1;
            else if(cpt1.getValeur() > cpt2.getValeur())
              return 1;
            else return 0;
     
                }
    }
    Merci de votre aide

  6. #6
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    compare(Object m1, Object m2)

+ 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, 18h33
  2. Réponses: 7
    Dernier message: 28/01/2010, 14h44
  3. [Access] Trier une table sur plusieurs critères
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/05/2006, 19h18
  4. Trier une table avec valeur de differentes unités
    Par Sydaze dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/06/2005, 11h43

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