D.B*_*zer 6 java sorting reverse compare object
我有一个名为 的对象project,我想按该项目的 2 个字段对该项目进行排序:
第一:按日期(Gregorian Callander);第二:按名称(字符串);
我想按日期从新到旧对项目进行排序。我知道执行此操作的唯一方法是反转集合。不过,我想对名称上具有相同日期的项目进行排序(按字母顺序),其中反向也会反转这部分排序。
有没有一种方法可以仅反转部分排序方法,或者有任何其他方法可以首先按日期(反向)然后按字符串(正常顺序 az)排序?
目前我正在重写对象compareTo方法,如下所示:
@Override
public int compareTo(Project project) {
int i = this.projectDate.compareTo(project.projectDate);
if(i != 0) return i;
return this.projectName.compareTo(project.projectName);
}
Run Code Online (Sandbox Code Playgroud)
Date#compareTo如果此 Date 位于 Date 参数之前,则返回值 < 0,否则返回值 > 0。
如果你想从新排序到旧排序,你可以只返回负的比较结果:
@Override
public int compareTo(Project project) {
int i = this.projectDate.compareTo(project.projectDate);
if(i != 0) return -i; // reverse sort
return this.projectName.compareTo(project.projectName);
}
Run Code Online (Sandbox Code Playgroud)