gpt4 book ai didi

java - 从自定义对象中反转部分 CompareTo 方法

转载 作者:行者123 更新时间:2023-11-30 06:09:23 26 4
gpt4 key购买 nike

我有一个名为 project 的对象,我想按它的两个字段对这个项目进行排序:

首先:按日期(Gregorian Callander);第二:按名称(字符串);

我想按日期从新到旧对项目进行排序。我知道这样做的唯一方法是反转集合。但是我想对名称上具有相同日期的项目进行排序(按字母顺序),其中 reverse 也会反转这部分排序。

有没有办法只反转排序方法的一部分,或者任何其他方法首先按日期(反转)然后按字符串(正常顺序 a-z)排序?

目前我正在覆盖对象 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);

}

最佳答案

Date#compareTo 如果此日期在 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);
}

关于java - 从自定义对象中反转部分 CompareTo 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com