2011-02-04 27 views
0

残念ですが、これはまっすぐなことですが、私はGroovyを初めて使い慣れています。私は、各サブリスト内のキーを「使用」に、このリストをソートする方法を把握しようとしているが、私は取得するように見えることができない、それは考え出し:Groovyのリストのリストを並べ替え

[[name:foo, uses:2], [name:bar, uses:1], [name:baz, uses:4]] 

私は次のことを得ることを望みました結果:

[[name:baz, uses:4], [name:foo, uses:2], [name:bar, uses:1]] 

は、誰かがそこに最高これを処理する方法を知っていますか?私は同様の質問をチェックしましたが、Groovyに関するものは何も見つかりませんでした。

ありがとうございます。私はそれを考え出したと思う

答えて

5

それを行うための最も簡単な方法は、sort方法

def sorted = lists.sort({a, b -> b["uses"] <=> a["uses"] }) 
sorted.each { 
println it 
} 

// prints 
// [name:baz, uses:4] 
// [name:foo, uses:2] 
// [name:bar, uses:1] 
+0

私たちは正確に同じ時間でこれを答えだと思うを追加したい用いることであろう。 :) – supersighs

3

...

sort{a,b -> b['uses'] <=> a['uses']} 

...は、トリックを行うようです。

3

だけの短いバージョン

[[name:'foo', uses:2], [name:'bar', uses:1], [name:'baz', uses:4]].sort{-it.uses}​​​​​ 
関連する問題