很抱歉,如果这是一个直截了当的事情,我是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有关的内容。
提前致谢。
答案 0 :(得分: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]
答案 1 :(得分:3)
我想我想出来了......
sort{a,b -> b['uses'] <=> a['uses']}
...似乎可以解决问题。
答案 2 :(得分:3)
只想添加更短的版本
[[name:'foo', uses:2], [name:'bar', uses:1], [name:'baz', uses:4]].sort{-it.uses}