Svp quelqun peut me dire comment trier un ArrayList<ArrayList<Object>>?
Version imprimable
Svp quelqun peut me dire comment trier un ArrayList<ArrayList<Object>>?
Collections.sort(List list,Comparator c);
ou
Collections.sort(List list);
ça ma sortie une erreur; il dit que la methode n'est pas applicable à un <ArrayList <Object>>.
Parce que je l'ai appeler comme ça :
Collections.sort(arrayvar).
J'ai essaie avec une ArrayList avec 1 dimension ça marche ta methode, ms avec 2 dimensions il veut pas
J'ai fais quoi comme betise svp ?:cry:
Ah pardon, j'avais pas fait attention que tu voulais trier une liste de liste.
Ben sinon, tu parcours ta liste principale et pour chaque sous-liste, tu fais un sort.
Si tu cherches à trier des listes entre elles, il faut définir les critères qui font qu'une liste "est plus grande qu'une autre".
Typiquement, si j'ai les listes {3,5,7} et {1,5,9}, quelle est la liste la plus grande? Est-ce qu'il faut additionner chaque nombre pour déterminer la plus grande? Ou bien c'est la plus grande valeur qui prend le dessus? Ou bien faire autre chose?
Une fois que ces critères seront posés, il te suffira d'écrire un Comparator qui les implémente, et d'utiliser la méthode proposé ci-dessus (sort(List, Comparator)).
;)
En faite jaimerai, sil existe, trier les lignes plutot que des colonnes entre elles.
Si vous voulez, il sagit d'un JTable. Faut que je le trie par rapport à la clé primaire.
C'est ça le problème :cry:. Et bien sur le plus gros problème c'est que j'ai pas assez d'expérience en Java pour faire ça!
Vous avez une astuce svp ?
Et bien il faut que tu "expliques" à ton programme comment il doit trier tes listes.
Et cela se fait en créant un objet "Comparator", que tu passeras en paramètre de ta méthode de tri.
Hehe ben nan! parceque, j'ai un JTable, tout les seconds, j'exécute une petite requete pour reverifier le journal. Je récupere que 1 ou quelques lignes et non pas toute la table(pour essayer d'alleger le plus possible). c'est pour ça que jaurais besoin d'une insertion (ça c'est bon j'ai bien lu le Tuto de developpez.com et java sun) et le trie, la ça va pas. :D
Ok...
voilà un exemple du Comparator que tu devras écrire:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Comparator c = new Comparator() { public int compare(Object o1, Object o2) { if((o1 instanceof ArrayList) && (o2 instanceof ArrayList)) { ArrayList a1 = (ArrayList)o1; ArrayList a2 = (ArrayList)o2; // 0 est l'index du champ à trier. A remplacer! return ((Comparable)a1.get(0)).compareTo(a2.get(0)); } return 0; } };
Si c'est pour une JTable, tu peux procéder autrement.
Si tu utilises la version 6 de java, il y a juste une méthode à appeler pour activer le tri de ton JTable.
Si tu utilises une version < 6 de Java, rends toi à cette adresse :
http://java.sun.com/docs/books/tutor...e.html#sorting
Oups, je crois que le tuto relatif au lien est mis à jour pour Java 6.
Faut que je retrouve le lien original.
Voilà, je crois que c'est ça:
http://java.sun.com/docs/books/tutor...bleSorter.java
Super cool ça marche ! Merci beaucoup ! En faite j'ai utiliser ce tuto, mai j'ai pas réactualiser le trie sur mise à jour, c'est pour ça que ça marche pas, j'ai vu le truc grace a tes liens.
Merci beaucoup a ts !!