Groovy 按姓名升序排序,按年龄降序排序
Groovy sort list asc by name and desc by age
如何按相反顺序按 2 个字段对列表进行排序?我正在尝试按名称(升序)和年龄(降序)对列表进行排序。我试过:
list.sort { -it }
下降,
list.sort { it }
用于升序,但不考虑两个不同的字段。是否可以像这样对列表进行排序?
类似
def list = [ [name:1, age:2], [name:2, age:10], [name:1, age:20] ]
list = list.sort{ a, b -> a.name <=> b.name ?: b.age <=> a.age }
assert [[name:1, age:20], [name:1, age:2], [name:2, age:10]] == list
如何按相反顺序按 2 个字段对列表进行排序?我正在尝试按名称(升序)和年龄(降序)对列表进行排序。我试过:
list.sort { -it }
下降,
list.sort { it }
用于升序,但不考虑两个不同的字段。是否可以像这样对列表进行排序?
类似
def list = [ [name:1, age:2], [name:2, age:10], [name:1, age:20] ]
list = list.sort{ a, b -> a.name <=> b.name ?: b.age <=> a.age }
assert [[name:1, age:20], [name:1, age:2], [name:2, age:10]] == list