簡體   English   中英

Groovy-使用兩個條件對我的對象列表進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM