[英]Groovy - sorting my object list using two criterias
上這節課:
class Report
{
String firstName
String lastName
}
我需要第一的名頭由過去的名稱 ,然后排序我一個人名單。
我試圖使用以下代碼來做到這一點:
persons.sort{[it.lastName, it.firstName]}
但這沒有成功。
還有其他建議可以按兩個標准進行排序嗎?
使用最新版本的groovy可以使用@Sortable批注來實現。
第二種選擇是實現Comparable
並使用spaceship
( <=>
)運算符。
這是帶有sort
方法的示例:
import groovy.transform.ToString
@ToString
class R {
def f
def l
}
def list = [new R(f: 'A', l: 'B'),new R(f: 'A', l: 'A'),new R(f: 'A', l: 'C'),new R(f: 'B', l: 'C')]
list.sort {left, right -> left.l <=> right.l ?: left.f <=> right.f}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.