Reputation: 1309
I have a groovy list of Order object. I want to sort this list on order id. If my list is sorted in ascending order then sort it in descending and Vice Versa. What is the smarted way to solve this problem?
Upvotes: 10
Views: 17909
Reputation: 171084
class Order {
int id
String toString() { "O$id" }
}
def list = [ new Order( id: 1 ), new Order( id: 2 ), new Order( id: 3 ) ]
// Sort ascending (modifies original list as well)
println list.sort { it.id }
// Sort descending (modifies original list as well)
println list.sort { -it.id }
// Sort ascending (don't modify original)
println list.sort( false ) { it.id }
// Sort descending (don't modify original)
println list.sort( false ) { -it.id }
Upvotes: 18