gpt4 book ai didi

java 按当前日期排序列表,然后按日期比较

转载 作者:行者123 更新时间:2023-11-30 02:45:01 25 4
gpt4 key购买 nike

我有一个对象的ArrayList Foo(int id, Date date) .

我将如何对此 ArrayList 进行排序,使其看起来如下所示

    id = 3, date = 07 Nov 2016
id = 2, date = 08 Nov 2016
id = 5, date = 30 Nov 2016
id = 1, date = 05 Nov 2016
id = 4, date = 04 Nov 2016

前三个对象在未来按最接近(到现在)首先排序,下面两个对象在过去按最接近(到现在)最先排序。

最佳答案

要按多个条件排序,您需要一个复合比较器:

Collections.sort(dates, (d1, d2) -> {
if (d1.after(now) && d2.after(now)) {
return d1.compareTo(d2);
}
if (d1.before(now) && d2.before(now)) {
return -d1.compareTo(d2);
}
return -d1.compareTo(d2);
});

即:

  • 如果两个日期都晚于现在,则按正常顺序(递增)对它们进行排序
  • 如果两个日期都在现在之前,则按相反顺序(递减)对它们进行排序
  • 否则(= 一个日期在现在之前,另一个日期在现在之后),则按相反顺序对它们进行排序(= 较新的日期排在前面,较旧的日期排在后面)

关于java 按当前日期排序列表,然后按日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446801/

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