Trier une arraylist

Résolu
occhilupo Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
 coffee -
Bonjour,
j'ai un petit souci pour trier une arraylist, je m'explique j'ai une classe joueur :

public class Joueur {

int reg;
int departement;
int point;
String nom;
.......
}

puis une autre classe ou j'ai une arraylist de la classe Joueur

public class execl{

ArrayList Joueur=new ArrayList();
........
}

J'ajoute plusieurs Joueur à mon ArrayList avec la methode add(), puis je voudrais trier mon arraylist par ordre decroissant des points de chaque joueur, mais c'est je ne sais pas comment fair.

Est ce que quelqu'un pourrait m'aider??

Merci
occhi.
A voir également:

7 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Il faut que ta classe joueur implémente l'interface IComparable.
Dans ta classe "joueur", il faudrait que tu crées une méthode compareTo(Joueur autreJoueur) qui renvoie 1 si le joueur "This" est plus grand que le joueur autreJoueur (grand au sens que tu désires), 0 si les joueurs sont à égalité, -1 sinon.

Ensuite, il te suffit, avec ton arraylist (que je n'appellerais pas Joueur à ta place ! Tu donnes le même nom qu'à la classe Joueur, ce n'est pas une bonne idée), d'appeler sa méthode .Sort()

Ce qui donnerait quelque chose comme ça pour la classe Joueur :
public class Joueur Implements IComparable {

int reg;
int departement;
int point;
String nom;
.......

   Public Int CompareTo(Joueur autreJoueur)
   {
      int resultat;
      if (this.point > autrejoueur.point)
         resultat = 1;
      if (this.point < autrejoueur.point)
         resultat = -1;
      if (this.point == autrejoueur.point)
         resultat = 0;
      return resultat;
   }
} 
Et comme ça pour ton arraylist :
public class execl{

ArrayList LesJoueurs = new ArrayList();
........
LesJoueurs.Add();
LesJoueurs.Add();
LesJoueurs.Add();
LesJoueurs.Add();
........
LesJoueurs.Sort();
} 
Si tu veux trier autrement, modifie juste la fonction CompareTo() pour mettre ce que tu veux dedans.

Xavier
38