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 des ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut Tri des ArrayList
    j'utilise l'instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Collections.sort(roles);
    		Collections.sort(produit);
    		Collections.sort(activitess);
    		Collections.sort(processus);
    pour trier ces 4 arraylist.
    Mais sa ne marche pas j'ai une ClassCastException.

    Je suppose que c'est parceque les éléments contenu dans les ArrayList ne sont pas des String mais des objet de ce type
    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
    *class permettant la construction d'élément*/
    public class Elements
    {
     
    	public ArrayList elementAssocie = new ArrayList();// liste contenant tous les éléments associés
     
    	public String nom; // nom de l'élément
    	public char type; // type de l'élément
     
    	/*constructeur des éléments*/
    	public Elements(String nom, char type)
    	{
    		this.nom = nom; // donne le nom de l'élément
    		this.type = type; // donne le type de l'élément
    	}

    J'ai lu une histoire de ICompareTo mais n'ya t-il pas plus simple? ou sinon quelqun peut essayer de m'expliquer clairement merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    en fait, c'est tres simple, il faut que tu t'y mette car c'est le fonctionnement general de l'objet.

    Il faut que ta classe impléménte le bonne interface (Comparable de mémoire, mais rien de sur), en effet pour trier la fonction "sort" attend un objet de type "comparable" (d'ou le classCastException, ton objet n'est pas du type Comparable), auquel il peut trouver un ordre grace a la méthode compareTo que tu aura surcharger dans ta classe selon ce que tu souhaite comme tri.

    Il faut que ta classe implémente la bonne interface (pour que ton objet soit du type voulu âr la méthode "sort") et que tu redefinisse la méthode compareTo (qui est appeler par "sort" et défini le (les) critères de tris

  3. #3
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    Et c'est dans la classe Elements que je doit implémenter Comparable?

    Et si oui je ne comprend pas tres bien comment surcharger la methode compareTo pour qu'il y est un tri alphabetique de l'arraylist?

  4. #4
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    oui c'est bien dans ta classe element que tu implémént Comparable

    et un exemple d'implementation de compareTo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public int compareTo(Elemnt e){
       retrun this.attribut1.compare( e.attribut1 )
    si attribut1 est une string tu aura un tri alphabétique sur tes elements mais enfait, sur l'attribut1 de tes elements.
    Apres tu peux faire ce que tu veux et complexifier la comparaion

  5. #5
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    Merci maintenant cela fonctionne tres bien tu es un ange mec merci

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

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. Tri avec des ArrayLists
    Par quentigus dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 07/06/2009, 17h57
  3. Tri des colonnes d'une DBGRID
    Par Atrebate62 dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/05/2004, 12h20
  4. [MFC] CListCtrl: colonnes fixes + tri des items
    Par bigboomshakala dans le forum MFC
    Réponses: 5
    Dernier message: 10/05/2004, 22h54
  5. [TShellListView] Tri des éléments
    Par M.Dlb dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/12/2003, 22h35

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