Reputation: 1
please can you help me with sorting a map
def map = [
[name:"Jerry", age: 42],
[name:"Long", age: 25],
[name:"Dustin", age: 29],
[name:"Bin", age: 34]]
map.each{entry -> println "$entry.name : $entry.age : $entry.city" }
gives me
Jerry : 42 : null
Long : 25 : null
Dustin : 29 : null
Bin : 34 : null
I want to sort this by age descending to get
Jerry : 42 : null
Bin : 34 : null
Dustin : 29 : null
Long : 25 : null
sortedone = map.sort { a, b -> a.value <=> b.value }
does not work for me. Please can you help?
Upvotes: 0
Views: 92
Reputation: 27200
You can use the sort(Closure)
method:
def map = [
[name:"Jerry", age: 42],
[name:"Long", age: 25],
[name:"Dustin", age: 29],
[name:"Bin", age: 34]]
map.sort { -it.age }
println map
[[name:Jerry, age:42], [name:Bin, age:34], [name:Dustin, age:29], [name:Long, age:25]]
Upvotes: 4