Je ne parviens pas à sortinger une liste d’objects par date.
Disons que c’est ma classe
class Thing { Profil profil Ssortingng status = 'ready' Date dtCreated = new Date() }
à l’intérieur de la méthode, je crée les List things
la List things
List profiles = profil.xyz?.collect { Profil.collection.findOne(_id:it) } List things = []
puis je remplis la liste avec chaque Chose associée de chaque profil
profiles.each() { profile,i -> if(profile) { things += Thing.findAllByProfilAndStatus(profile, "ready", [sort: 'dtCreated', order: 'desc']) as }
bien, maintenant les things
ont beaucoup de choses dedans, malheureusement, le [order: 'desc']
été appliqué à chaque ensemble de choses et j’ai besoin de sortinger la liste entière par dtCreated, qui fonctionne à merveille comme
things.sort{it.dtCreated}
Très bien, maintenant tout est sortingé par date mais dans le mauvais ordre, le plus récent est le dernier élément de la liste.
J’ai donc besoin de sortinger dans le sens opposé, je n’ai rien trouvé sur le Web qui me fasse avancer, j’ai essayé des choses comme
things.sort{-it.dtCreated} //doesnt work things.sort{it.dtCreated}.reverse() //has no effect
et je ne trouve aucune approche géniale pour une telle opération standard, peut-être que quelqu’un a une idée de la façon dont je peux sortinger mes affaires par date dans l’ordre descedant? il doit y avoir quelque chose comme orm j’ai utilisé ci-dessus [sort: 'dtCreated', order: 'desc']
ou n’est-ce pas?
pour toute allusion merci d’avance
Au lieu de
things.sort{-it.dtCreated}
vous pourriez essayer
things.sort{a,b-> b.dtCreated<=>a.dtCreated}
reverse () ne fait rien car il crée une nouvelle liste au lieu de transformer la liste existante.
things.sort{it.dtCreated} things.reverse(true)
devrait marcher
things = things.reverse()
ainsi que.
Que diriez-vous
things.sort{it.dtCreated} Collections.reverse(things)
Regardez ici pour quelques utilitaires de liste plus utiles
Vous pouvez également utiliser choses.first () et choses.last () pour extraire le premier et le dernier élément de la liste.