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 :

[ranger] un tableau de facon differente.


Sujet :

Collection et Stream Java

  1. #1
    Membre très actif
    Inscrit en
    Novembre 2004
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 234
    Par défaut [ranger] un tableau de facon differente.
    Bonjour

    j'ai une liste d'amis et amis est une classe.
    Je voudrais utiliser l'interface collection pour classer ma liste d'amis en fonction des attributs qui se trouvent dans la classes de celle ci . j'aimerai le classer par age, par nom ,par prénom ou par pays etc.

    la classe est hérite d une interface comparable et à l'intérieur de ami j'ai ma fonction compareto et je le compare avec le prénom un attribut de la classe ami.
    mais j'aimerai le faire avec tous les attribut comment fait ton cela.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Quand tu crée tes collections, tu dois utiliser leur constructeur prenant en paramètre un Comparator, et c'est celui-ci qui se chargera d'implémenter les règles de tri dont tu as besoin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SortedSet<Personne> = new TreeSet<Personne>(new PersonneTelephoneComparator());
     
    public class PersonneTelephoneComparator implements Comparator<Personne> {
    //.....
    }
    Pareil quand il s'agit de trier un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Personne[] personne = .....
    Arrays.sort(personne, new PersonnePrenomComparator());

  3. #3
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Tu peux créer des classes qui implémentent Comparator, et ensuite utiliser Collections.sort(List list, Comparator c).

    Tu peux même en faire des attributs statiques de la classe :

    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 Person {
     
    	private String name;
     
    	private int age;
     
    	public final static Comparator<Person> NAME_COMPARATOR = new Comparator<Person>() {
    		@Override
    		public int compare(Person arg0, Person arg1) {
    			return arg0.name.compareTo(arg1.name);
    		}
    	};
     
    	public final static Comparator<Person> AGE_COMPARATOR = new Comparator<Person>() {
    		@Override
    		public int compare(Person arg0, Person arg1) {
    			return arg0.age - arg1.age;
    		}
    	};
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Person> liste = ....
    Collections.sort(liste, Person.NAME_COMPARATOR);
    Collections.sort(list, Person.AGE_COMPARATOR);
    Edit : grillé par le café et Tchize

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2004
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 234
    Par défaut
    merci pour votre réactivité.
    oui c'est exactement ce que je recherchais merci. je vais l' implémenter tout de suite.
    Je vous remercie de votre aide précieux.

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

Discussions similaires

  1. Lire un fichier et ranger dans tableau
    Par Nemesis007 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/02/2010, 09h56
  2. Ranger des données dans un tableau
    Par zmatz dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/06/2007, 18h07
  3. récupérer un tableau de facon dynamique
    Par amel95140 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 21/12/2006, 09h57
  4. Ranger un tableau.
    Par Fred2209 dans le forum C++
    Réponses: 5
    Dernier message: 07/11/2006, 18h58
  5. 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

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