Trier une arraylist
Résolu
occhilupo
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
coffee -
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.
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:
- Trier arraylist java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Excel trier par ordre croissant chiffre - Guide
- Jeux java itel 5360 - Forum Mobile
- Eclipse java - Télécharger - Langages
7 réponses
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 :
Xavier
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