The Kaptain on … stuff

24 Oct, 2009

Groovy reverse map sort done easy

Posted by: TheKaptain In: Development

Sorting a Map by value with Groovy is very simple, due to the added ‘sort’ method on the Map interface.

def map = [a:3, b:2, c:1]
map = map.sort {it.value}
assert map == [c:1, b:2, a:3]

Turns out doing a reverse sort on a Map by values is almost as easy.

def map = [a:1, b:2, c:3]
map = map.sort {a, b -> b.value <=> a.value}
assert map == [c:3, b:2, a:1]

Using the spaceship operator (‘< =>‘) you can define a very terse syntax for accessing ‘compareTo’, as long as the values in the map implement Comparable that is.

Get Adobe Flash player