2013-06-20 12 views
32

- 私descedentためにソート・リスト - グルーヴィーな狂気日によってオブジェクトのリストをソートすることはできません

が、これは私のクラスシング内部

class Thing { 

Profil profil 
String status = 'ready' 
Date dtCreated = new Date() 
} 

であると言うことができます方法 - 私List things

  List profiles = profil.xyz?.collect { Profil.collection.findOne(_id:it) } 

      List things = [] 

を作成し、私は、各プロファイルの各関連するもので、リストに移入

  profiles.each() { profile,i -> 
       if(profile) { 
        things += Thing.findAllByProfilAndStatus(profile, "ready", [sort: 'dtCreated', order: 'desc']) as 
       } 

大丈夫、今thingsが、その中でたくさんのことをしてい残念ながら[order: 'desc']は、物事の各セットに適用されたと私はdtCreatedでリスト全体をソートする必要がある、

  things.sort{it.dtCreated} 

ファイン似のwonderfull動作します今はすべてのものが日付順に並べ替えられていますが、間違った順序でリストの最後のものが最後のものです

私は反対方向にソートする必要があります。私を前方に向かわせて、みたいなものを試してみた

  things.sort{-it.dtCreated} //doesnt work 
      things.sort{it.dtCreated}.reverse() //has no effect 

このような標準的な操作のためのグルーヴィーなアプローチはありません。誰かが私のものをどのように偶然の順序で並べ替えることができますか?上記のormのような何かがあるはずです[sort: 'dtCreated', order: 'desc'] またはそれはありませんか?それは既存のものを変異するのではなく、新しいリストを作成するため

事前に任意のヒントのおかげため

+3

'things.sort {-it.dtCreated.time}' – vegemite4me

答えて

72

代わり

things.sort{-it.dtCreated} 

のあなたは

things.sort{a,b-> b.dtCreated<=>a.dtCreated} 

逆を試してみてください()は何もしません。

things.sort{it.dtCreated} 
things.reverse(true) 

は、同様に

things = things.reverse() 

を動作するはずです。

+0

ありがとう、最初のものは私のためにすばらしい、私はthings.reverse()を試してみる前に、私のケースではなく、things.reverse )ありがとうございます –

5

どのようにいくつかのより便利なリストのユーティリティを探しhere

things.sort{it.dtCreated} 
Collections.reverse(things) 

について

-5

またthings.first()とthings.last()は最初と最後の要素を抽出するために使用することができますリスト。

関連する問題