以下课程:
class Report
{
String firstName
String lastName
}
Run Code Online (Sandbox Code Playgroud)
我需要梳理我的人先通过名单姓由,然后第一个名字.
我尝试使用此代码制作它:
persons.sort{[it.lastName, it.firstName]}
Run Code Online (Sandbox Code Playgroud)
但它没有设法这样做.
还有其他建议要按两个标准进行排序吗?
使用最新版本的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}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |