Bonjour,
je souhaite trier une liste d'objets de la forme ArrayList<Boite>.
La class Boite est comme suit(par commodité les arguments sont publics):
En fait, j'aimerais récupérer 3 nouvelles listes, chacune triée selon la largeur de la boite, hauteur puis profondeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Boite{ public int profondeur; public int largeur; public int hauteur; public Boite(int profondeur, int largeur, int hauteur){ this.profondeur = profondeur; this.largeur = largeur; this.hauteur = hauteur; } }
Le probleme c'est que j'ai fait 1 seul tri (selon la largeur), en utilisant l'interface Comparator et en implementant la methode compare(Boite b1, Boite b2), comme ceci :
Et ensuite je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public int compare(Boite b1, Boite b2){ return b1.largeur - b2.largeur; }
Mais est-il possible d'implementer compare(Boite b1,Boite p2) pour pouvoir comparer ensuite suivant la hauteur, et la profondeur sans avoir à creer 3 class pour implementer Comparator de 3 façons differentes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Comparator<Boite> z = new Boite(0,0,0); Collections.sort(listeBoites, z);
Toute aide serait la bienvenue
Merci d'avance.
Partager