Если список Groovy сортируется в порядке возрастания, сортировка в порядке убывания и наоборот

У меня есть groovy список объекта Order. Я хочу отсортировать этот список по идентификатору заказа. Если мой список отсортирован в порядке возрастания, сортируйте его по убыванию и наоборот. Каков умный способ решить эту проблему?

Ответ 1

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 }