我想相对于当前日期对日期列表进行排序,例如列表中有下一项:
10.01.2018,
10.20.2018,
10.14.2018,
10.02.2018
当前日期是10.08.2018
.
结果应该是按下一个顺序升序排列的数组:
10.14.2018,
10.20.2018 and then
10.01.2018,
10.02.2018.
首先应该是未发生的日期,然后是过去的日期。如何使用比较器来做到这一点?
我发现的最简洁、最优雅、但可读的方式如下:
list.sort(
Comparator
.comparing( LocalDate.now()::isAfter )
.thenComparing( Comparator.naturalOrder() )
);
这读作首先比较每个日期是否在今天之后进行排序,然后使用LocalDate
的自然秩序。 (值得记住的是排序boolean
价值观意味着投入false
s 开头并且true
s 最后,即false < true
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)