java - 相对于当前日期对 Java 集合进行排序

标签 java android sorting date collections

我想根据当前日期对我的日期列表进行排序,例如列表中有下一项:

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 放在开头,将 true 放在结尾,即 false < true )。

关于java - 相对于当前日期对 Java 集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52704880/

相关文章:

java - bean 的类属性中的属性占位符

java - 无法使用 gradle war 插件运行 git submodule init

java - 读取文本文件在控制台中显示结果,不带分隔符

android - Xamarin XMPP 客户端库

java - 使用 XML 字符串

android - 如何获取特定时刻点击的所有原始接触点?

python - 按另一个数组的列对一个数组进行排序 - Python

ios - 根据已排序的另一个数组的顺序调整一个数组的顺序

java - 找不到 .csv 文件

python - 使用索引数组跨多个轴重新排序 numpy 数组的最快方法