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.



Tales of development, life and the folly that goes along with both.


profile for TheKaptain at Stack Overflow, Q&A for professional and enthusiast programmers
Get Adobe Flash player