Trier une collection<objet> [Résolu]

Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Dernière intervention
15 décembre 2008
- - Dernière réponse : indiana_jules
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 décembre 2008
- 10 juil. 2008 à 15:34
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!
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 décembre 2008
3
Merci
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

Merci indiana_jules 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de indiana_jules
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
0
Merci
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.
Commenter la réponse de cs_AlexN
Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Dernière intervention
15 décembre 2008
0
Merci
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!
Commenter la réponse de cs_byob
Messages postés
35
Date d'inscription
vendredi 27 janvier 2006
Dernière intervention
15 décembre 2008
0
Merci
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!
Commenter la réponse de cs_byob
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 décembre 2008
0
Merci
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
Commenter la réponse de indiana_jules
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
0
Merci
Yep, c'était un test, pour voir si tu suivais ;o)
Commenter la réponse de cs_AlexN
Commenter la réponse de indiana_jules

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.