Ahmad.Masood
Ahmad.Masood

Reputation: 1309

If Groovy list is sorted in Ascending order, Sort it in Descending order and Vice Versa

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

Answers (1)

tim_yates
tim_yates

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

Related Questions