Double tri en java

Résolu/Fermé
barjoray - 22 juil. 2009 à 15:31
 barjoray - 22 juil. 2009 à 20:12
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!
            
                
A voir également:

2 réponses

Phortitou Messages postés 221 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 4 décembre 2011 27
22 juil. 2009 à 15:36
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.
0
Ok! Bon c'est ce que j'ai fait, ca marche! Je savais pas s'il exister un objet java deja tout pret ^^
0