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

Développement Web en Java Discussion :

Java : trier des objets avec sort comparator


Sujet :

Développement Web en Java

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut Java : trier des objets avec sort comparator
    Bonjour,
    Je souhaite trier une liste de graphiques (objet UtiGraphique) par utilisateurs (objet RefUtilisateur) par nom et prénom d'utilisateur.
    J'ai ce code pour trier par nom et qui marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getListeUtiGraphiquePartage().sort(Comparator.comparing((UtiGraphique) -> UtiGraphique.getRefUtilisateur().getNom()));
    Je souhaite trier la liste aussi par prénom et j'ai ce code mais qui ne marche pas ! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getListeUtiGraphiquePartage().sort(Comparator.comparing((UtiGraphique) -> UtiGraphique.getRefUtilisateur().getNom())
        .thenComparing((UtiGraphique) -> UtiGraphique.getRefUtilisateur().getPrenom()));
    Enfin je souhaite trier la liste par ordre décroissant avec ce code mais qui ne marche pas ! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getListeUtiGraphiquePartage().sort(Comparator.comparing((UtiGraphique) -> UtiGraphique.getRefUtilisateur().getNom().reverse())
        .thenComparingInt((UtiGraphique) -> UtiGraphique.getRefUtilisateur().getPrenom().reverse()));
    Pouvez-vous m'aider SVP ? MERCI.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je ne connais pas le type de l'objet UtiGraphique (et normalement le nom de l'instance commence par une minuscule) mais bon, ci-dessous un exemple qui fonctionne :
    La classe de base
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class Person
    {
        private String firstName;
        private String lastName;
     
        public Person(String firstName, String lastName)
        {
            super();
            this.firstName = firstName;
            this.lastName = lastName;
        }
     
        public String getFirstName()
        {
            return firstName;
        }
     
        public void setFirstName(String firstName)
        {
            this.firstName = firstName;
        }
     
        public String getLastName()
        {
            return lastName;
        }
     
        public void setLastName(String lastName)
        {
            this.lastName = lastName;
        }
     
        @Override
        public String toString()
        {
            return "Person [firstName=" + firstName + ", lastName=" + lastName + "]";
        }    
    }
    Et le code pour 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
        public static void main(String[] args)
        {
            List<Person> persons = new ArrayList<>();
     
            persons.add(new Person("Olivier", "BUTTERLIN"));
            persons.add(new Person("Alexandre", "BUTTERLIN"));
     
            persons.sort(Comparator.comparing((Person p) -> p.getLastName()).thenComparing((Person p) -> p.getFirstName()));
     
            for (Person person : persons)
            {
                System.out.println(person);
            }
        }
    A noter que pour trier par nom descendant, on aurait fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     persons.sort(Comparator.comparing((Person p) -> p.getLastName()).reversed().thenComparing((Person p) -> p.getFirstName()));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut
    Avec la bonne syntaxe ça va tout de suite mieux !
    Merci beaucoup.

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

Discussions similaires

  1. Créer des objets avec Java Monkey Engine
    Par ToTo13 dans le forum 3D
    Réponses: 3
    Dernier message: 31/07/2007, 15h06
  2. [Tableaux] Trier des données avec des tableaux
    Par yobogs dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2006, 13h39
  3. Trier des objets sans Comparable
    Par Shabata dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 13/03/2006, 13h55
  4. [FLASH] Déplacement des objets avec clavier ???
    Par 3adoula dans le forum Flash
    Réponses: 1
    Dernier message: 07/01/2006, 01h03
  5. trier des fichiers avec un tableau flexgrid
    Par digger dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/12/2005, 15h20

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