Sort ArrayList

jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004 - 19 juin 2003 à 13:17
jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004 - 20 juin 2003 à 16:39
Bonjour, sauriez vous comment trier une ArrayList en fonction d'une colonne des tableaux la constituant ou auriez vous une fonction le faisant?
un vector serait peut etre mieux!
merci
A voir également:

6 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
19 juin 2003 à 17:41
salut,
bon je vais repondre a plusieurs de tes questions d un coup ;)
pour convertir un arraylist en tableau d objet, tu fais appel a sa mathode toArray qui te renvoit un object[].
Pour appliquer un Arrays.sort dessus, il faut que tes objets implementes comparable et donc une ou des methode(s)compareTo
ou alors, tu te fais une classe qui implemente comparator et tu defini les comparaisons entre les differents type d objets que tu veux pouvoir comparer et tu passe une instance de ta classe a la methode sort
Duss
0
jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004
19 juin 2003 à 18:01
merci

j'ai bien
import java.util.*;
et à
sort(liste_tri);
j'ai
Method sort(java.util.List) not found
sauriez vous pourquoi et comment y remedier?
0
jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004
19 juin 2003 à 18:09
et en mettant
Collections.sort(liste_tri);

ai
Exception in R

Root cause:

java.lang.ClassCastException

sauriez vous ce qui se passe ?
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
19 juin 2003 à 19:32
he bien il faut faire un toArray() sur ton arrayList avant d appeler la methode sort
Duss
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004
20 juin 2003 à 09:09
pour trier une liste
voici le code

public class Test implements Comparator


Puis dans cette classe, insére les méthodes remplissant le contrat du dessus :

Code:

public int compare (Object o1, Object o2)
{
List list1 = (List)o1;
List list2 = (List)o2;
list1.get(0).toString().compareTo(list2.get(0).toString());
}

public boolean equals(Object o)
{
return true;
}


Enfin supposons que ta liste (contenant les ArrayList ) s'appelle myListe, tu appelle la fonction sort() de cette facon :

Code:

Collections.sort(myListe, this);

en fait il faut qu'a la décalaration de la classe je taper implements Comparator mais suis dans 1 jsp!
suis aubligé de faire 1 javabean?

je doit mettre implements Comparator au départ de la déclaration du javabean ou au début de la fonction?

merci
0
jmg02001 Messages postés 78 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 4 octobre 2004
20 juin 2003 à 16:39
liste_tri est une liste de tableau d'entiers (tous la meme taille)
je veut trier la liste sur la première colonne

je fait

liste_tri=general.tri(liste_tri);

ou mon bean général implémente comparator:

public class General extends Object implements Comparator {

et y met ceci:

public int compare (Object o1, Object o2)
{
int[] tab1 = (int[])o1;
int[] tab2 = (int[])o2;
if (tab1[0]<tab2[0])
return -1;
else if (tab1[0]<tab2[0])
return 1;
else
return 0;
}

public boolean equals(Object o)
{
return true;
}

public List tri(List myListe)
{
Collections.sort(myListe, this);
return myListe;
}

mais voila ma liste n'a pas changée d'ordre :
sauriez vous ce qui ce passe et commment y remédier?
merci
0
Rejoignez-nous