Double tri en java

Résolu/Fermé
Signaler
-
 barjoray -
Bonjour,

Voila, jaimerais apprliquer un double tri a une table delements.
En fait j'ai deux colonnes String et int et j'aimerais que lorsque l'on decide de trier selon l'une des colones, la deuxieme soit aussi triees dans lordre alphabetique dans le cas de valeurs egales dans la premiere colonne.

Col 1.....Col 2
E..........2
B..........5
A..........2
C..........2

=> Resultat attendu :
Col 1.......Col 2
A............2
C............2
E............2
B............5

Pour l'instant j'obtiens seulement :
Col 1..........Col 2
E ..............2
A...............2
C...............2
B...............5

final ArrayList list = new ArrayList();
// remplissage de la liste
//...
Collections.sort(list, new DataModelComparator());

avec le comparateur suivant :

class DataModelComparator implements Comparator<>
{
public int compare(SelectableItem<> c1, SelectableItem<> c2)
{
if (sortColumnName.equals(Column1))
return ascending ? c1.getData().getName().toUpperCase().compareTo(c2.getData().getName().toUpperCase()) : c2.getData().getName().toUpperCase().compareTo(c1.getData().getName().toUpperCase());
else if (sortColumnName.equals(Column2))
return ascending ? new Integer(c1.getData().getStatus()).compareTo(new Integer(c2.getData().getStatus())) : new Integer(c2.getData().getStatus()).compareTo(new Integer(c1.getData().getStatus()));

return 0;
}
}

Avez-vous une idee pour retrier la table une fois ordonnee par le premier comparateur?
Merci d'avance de votre aide!
            
                

2 réponses

Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
24
Sépare en différent tableau, qui ont la valeur entière égale. Tu tries ensuite la valeur entière, puis tu tries les tableaux à valeur égale obtenus.
Ok! Bon c'est ce que j'ai fait, ca marche! Je savais pas s'il exister un objet java deja tout pret ^^