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

2024-07-04

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

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价值观意味着投入falses 开头并且trues 最后,即false < true).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相对于当前日期对 Java 集合进行排序 的相关文章

随机推荐

  • CSS3 3D 变换在 IE11 上不起作用

    我正在尝试使用 CSS3 3D Transform 构建一个立方体 对于这个例子 我只有两张脸 section div div section
  • Webpack - devtool:CSS 的源映射和 JS 的 eval-source-map?

    如果我使用 devtool source map 它与 CSS 配合得很好 但是 我的 JavaScript 变量名并不有趣 所以 如果我使用 devtool eval source maps 生活很美好 调试 JS 但我的 CSS 然后指
  • 在 docker 文件中安装私有 R 包

    我第一次尝试使用 Docker 和 ShinyProxy 在这个过程的一开始我遇到了很多困难 我开发了一些在本地运行良好的闪亮应用程序 我正在考虑将它们部署在我网站的一些文章中 这些闪亮的应用程序使用了 2 个我自己编码的包 它们位于我的计
  • 通用 Windows 10 应用程序的启动屏幕

    我正在创建一个针对 Windows Phone 和 Windows 桌面的 Windows 10 通用应用程序 我面临的问题是当通过 package manifest 文件向应用程序添加启动屏幕时 没有选项可以添加适合手机的启动屏幕纵向 见
  • 如何阻止 Powershell 坚持在参数中使用一个破折号?

    似乎有人巧妙地改变了在 powershell 上解析参数开关的方式 在某些机器上 split path c x y parent 有效 在某些情况下会失败 谁能告诉我a 是什么导致了差异 b 我怎样才能阻止它 开关参数在 V1 和 V2 中
  • 如何将作为参数传递的修饰符添加到 Modifier 的末尾?

    我有一个功能 Composable fun sendNewSmsText passedModifier Modifier Text text stringResource R string when sms not received sty
  • 子聚合导致数据丢失

    问题简述 当使用子聚合执行查询时 为什么内部聚合在某些情况下会丢失数据 详细问题 我有一个带有子聚合 桶中的桶 的搜索查询 如下所示 size 0 aggs outer docs terms size 20 field field 1 to
  • 匿名类是内部类的子集吗?

    这听起来可能是一个愚蠢的问题 但所有匿名类都必须在现有类中定义和实例化 因此 它们必须同时是内部类 匿名类是内部类的类型 看http docs oracle com javase tutorial java javaOO innerclas
  • RestKit:如何获取简单的 JSON 字符串数组?

    我应该如何使用 RestKit 来获取像这样的 JSON 字符串数组 Paris London Brussels New York 我尝试进行对象映射 但由于没有关键路径或属性 我不知道要映射什么 我什至不需要映射 结果可能只是一个数组或字
  • 如何连接 COM 事件调度程序?

    VBIDE API 揭示了令人惊奇的神秘之处 dispVBComponentsEvents接口 除其他外 其中看起来像我可以用它来捕获 VBE 中各种有趣的事件 因此 我在一个类中实现了该接口 该类旨在捕获事件并引发 正常 net 事件以供
  • awk 变量赋值语句需要解释

    好吧 言归正传 这是代码 我对代码进行了一些格式化以便于阅读 awk t 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value o
  • Shell 脚本在延迟后生成进程

    如何在 shell 脚本延迟后生成进程 我希望命令在脚本启动 60 秒后启动 但我想继续运行脚本的其余部分 而不先等待 60 秒 想法是这样的 bin sh Echo A 60 seconds later but without block
  • 使用 Appium 和 Ruby 测试 iOS 应用程序时等待元素加载?

    我正在测试一个iOS应用程序 登录后无法与元素交互 因为Appium运行得太快了 有人可以给我指出一个使用 WebDriverWait 风格等待 Appium iOS 测试的示例吗 最好用红宝石 Thanks 这对我有用 但我是 Appiu
  • 在 TextInputLayout 中显示密码图标触及基线

    I had some problem with my show password icon in TextInputLayout with android inputType textPassword Right now it is sho
  • 终极Java版本表(J2EE、Java EE、Servlet、JSP、JSTL)

    我正在寻找 Java EE 或以前称为 J2EE 和 Java SE 的组件分解 E g J2EE 1 3 Servlet 2 3 JSP 1 2 JSTL 1 0 J2EE 1 4 Servlet 2 4 JSP 2 0 JSTL 1 1
  • 如何在切换到 vim 正常模式时自动更改键盘布局?

    有时我使用 vim 编写非美国文本 当我想在正常模式下使用任何命令时 我需要将布局更改为美国 可以自动做到这一点吗 附言 我可以像这样进行映射this http www vim org scripts script php script i
  • id 是 python 中的关键字吗?

    我的编辑器 TextMate 显示id使用与我常用的变量名称不同的颜色 当用作变量名称时 是关键字吗 我不想遮蔽任何关键字 id不是一个keyword在Python中 但它是一个的名字内置功能 http docs python org li
  • 迁移到新 csproj 格式的 WPF 应用程序上未定义 RunCommand 属性

    我正在尝试将旧 csproj 格式构建的 WPF 应用程序迁移到为 VS2017 定义的新 csproj 格式 我已经能够编译该应用程序 但是当我尝试在 VS2017 下的调试器中启动它时 我收到以下错误消息 无法运行您的项目 未定义 Ru
  • 如何将node.js应用程序转换为cordova

    我们建造了一个node js适用于台式机和平板电脑的应用程序 它是完全基于网络的应用程序 现在我计划在中实现与本机应用程序相同的应用程序android using Apache cordova 在项目目录下 我们有node modules
  • 相对于当前日期对 Java 集合进行排序

    我想相对于当前日期对日期列表进行排序 例如列表中有下一项 10 01 2018 10 20 2018 10 14 2018 10 02 2018 当前日期是10 08 2018 结果应该是按下一个顺序升序排列的数组 10 14 2018 1