Trier une collection<objet> [Résolu]

Signaler
Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
15 décembre 2008
-
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
-
Bonjour, j'aimerais savoir comment on trie une collection d'objet:

J'ai fait:
Collection<Vhosts> listVhosts;
Collections.sort(listVhosts, new BeanComparator("fqdn", new NullComparator()));

mais Collections.sort(...) c'est pour les listes donc je ne sais pas trop comment faire,
merci pour votre aide!

7 réponses

Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
19
Bonjour,
deux solutions
1) soit tu convertis ton tableau en List (List hérite de collections, donc pas trop de changement en théorie)
2) soit tu passes par une variable intermédiare: ArrayList<Vhosts> arr = new ArrayList<Vhosts>(listVhosts); //Tu as une liste

Aprés, cela dépend de ce que tu veux faire aprés le sort (affichage dans une fenêtre, trier et conserver les données ect...)

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Salut,

>> mais Collections.sort(...) c'est pour les listes

Non c'est pour les collections, sinon ça serait List.sort()

>> Collections.sort(listVhosts, new BeanComparator("fqdn", new NullComparator()));

Le comparateur que tu donnes en argument à sort() semble être une classe que tu utilise par défaut. Est-ce que cette classe est adaptée pour comparer les instances de ta liste de type Vhosts ? Sinon, la plupart des comparateurs par défaut font des comparaison sur les références des instances et non leur contenu. Il faut implémenter ta propre méthode de comparaison pour être certain que le tri se fait comme tu le souhaites.
Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
15 décembre 2008

merci indiana_jules j'ai utilisé la 2eme methode que tu m'as proposée et c'est nickel,
sinon AlexN il n'y a pas de soucis pour le comparateur, je compare en fonction de la variable fqdn, un champ de mon entity Vhosts.
Bin merci!
Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
15 décembre 2008

merci indiana_jules j'ai utilisé la 2eme methode que tu m'as proposée et c'est nickel,
sinon AlexN il n'y a pas de soucis pour le comparateur, je compare en fonction de la variable fqdn, un champ de mon entity Vhosts.
Bin merci!
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
19
Y a pas de soucis.


AlexN >>>>>> mais Collections.sort(...) c'est pour les listes
>>>Non c'est pour les collections, sinon ça serait List.sort()

Si tu regardes la classe utilitaire Collections, tu pourras voir que java.util.Comparator) Sort demande bien en paramétre une liste : java.util.Comparator) sort(List<T> list, Comparator<? super T> c)


La classe utilitaire Lists n'existe pas, et les opérations pour les List se font bien dans Collections, certainnement pour éviter la redondance des opérations (vue que List implémente Collection)

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Yep, c'était un test, pour voir si tu suivais ;o)
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
19