オブジェクトのリストを日付順にソートすることはできません
これが私のクラスのものだと言うことができます
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}
うまく、今ではすべてのものが日付でソートされていますが、間違った順序で、最新のものはリストの最後のものです
反対の方向に並べ替える必要があります。ウェブ上で私を前に見たものは何も見つかりませんでした。
things.sort{-it.dtCreated} //doesnt work
things.sort{it.dtCreated}.reverse() //has no effect
そして、私はそのような標準的な操作のためのグルーヴィーなアプローチを見つけていません。上記の[sort: 'dtCreated', order: 'desc']
で使用したormのようなものが必要ですか?
ヒントについては事前に感謝します
の代わりに
things.sort{-it.dtCreated}
あなたが試すかもしれません
things.sort{a,b-> b.dtCreated<=>a.dtCreated}
reverse()は、既存のリストを変更する代わりに新しいリストを作成するため、何もしません。
things.sort{it.dtCreated}
things.reverse(true)
動作するはずです
things = things.reverse()
同様に。