sortinger la liste par date en ordre décroissant – groovy madness

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.