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 :

collections + sort + 2 arguments


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut collections + sort + 2 arguments
    je veux lister en utilisant deux arguments

    la premiere liste selon les stars puis lister cette liste de star selon le nbre de votes :

    j' ai utiliser Collections.sort:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Collections.sort( list(), AssetStatistics.STARS_COMPARATOR );
    Collections.sort( list(), AssetStatistics.VOTES_COMPARATOR );
    AssertsStatics c'est une classe qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     static public final Comparator<AssetStatistics> VOTES_COMPARATOR = new Comparator<AssetStatistics>() {
            public int compare(AssetStatistics first, AssetStatistics second) {
                return (int) Math.signum( second.getVotesCount()- first.getVotesCount() );
            }
        };
     
     
    static public final Comparator<AssetStatistics> STARS_COMPARATOR = new Comparator<AssetStatistics>() {
            public int compare(AssetStatistics first, AssetStatistics second) {
                return (int) Math.signum( second.getStarsCount()- first.getStarsCount() );
            }
        };

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Et... ? Quel est le problème ?

  3. #3
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    je n'ai pas pu faire la tri de la liste avec les deux arguments :

    sort avec le nbre de stars et puis selon le nbre de votes :

    6 stars
    5 stars .... 0star

    puis ordonner la liste des 6 stars selon les votes

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Déjà, vaut mieux utiliser les balises (en remplaçant kode par code) pour qu'on puisse facilement lire ton code.

    Ensuite, pour ton problème, bah, c'est relativement simple : tu fais deux tris consécutifs sur une même liste. C'est à dire que d'abord tu tries toute ta liste selon ton premier critère et qu'ensuite, peu importe le résultat, tu _retries_ toute ta liste selon le second résultat.

    Pour éviter ça, il faut fusionner tes deux comparateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static public final Comparator<AssetStatistics> STARS_THEN_VOTES_COMPARATOR = new Comparator<AssetStatistics>() {
      public int compare(AssetStatistics first, AssetStatistics second) {
        int retour = second.getStarsCount() - first.getStarsCount();
        if (retour != 0)
          return retour;
        return second.getVotesCount()- first.getVotesCount();
      }
    };

  5. #5
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    merci. ça marche

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Pourrais-tu dès lors afficher le tag [Résolu] en cliquant sur le bouton ? Merci

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

Discussions similaires

  1. Tri de HashMap avec Collections.sort
    Par opensource dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 09/07/2009, 14h27
  2. Collections.sort() : tri incorrecte.
    Par Quentin D dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 16/03/2009, 17h11
  3. java.util.Collections.sort() je n'y comprends rien
    Par cmako dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 17/09/2007, 14h01
  4. Collections.sort ne fonctionne pas
    Par lex13 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 12/07/2007, 11h13
  5. [collection] sort
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2006, 11h58

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