java - 对一组名称和日期进行排序
问题描述
我有一个字符串文件夹名称数组,每个名称都包含日期、时间和时区。数组是这样的:
[
"folder_name_01-18-2020-19_00_00_PM_EST",
"folder_name_05-01-2019-00_00_00_AM_EDT",
"folder_name_12-15-2019-02_00_00_AM_EST"
]
如何对该数组进行排序,以便所有文件夹名称按其日期(从最早到最新)升序排序,例如。上述数组的结果应该是这样的:
[
"folder_name_05-01-2019-00_00_00_AM_EDT",
"folder_name_12-15-2019-02_00_00_AM_EST",
"folder_name_01-18-2020-19_00_00_PM_EST"
]
文件夹名称字符串保证采用这种精确格式。folder_name
从不更改,因此每个文件夹名称只会更改时间戳。
我想到了一个听起来非常低效的高级解决方案:
Isolate the datetime from the folder name
Map the datetime to full folder name: {"05-01-2019-00_00_00_AM_EDT":"folder_name_05-01-2019-00_00_00_AM_EDT"}
Add the isolated datetime to an array
Sort the array of datetimes // potential trouble spot b/c of the date format
result = new array()
For item in sorted array:
result.add(map.get(item))
return result
我想知道是否可以使用改进和/或更好的方法来解决这个问题
解决方案
使用自定义找到了一个更好的解决方案Comparator
:使用该substring()
函数获取日期时间,使用 解析它SimpleDateTime
,从结果对象中获取纪元时间Date
,然后用于Long.compare()
确定哪个时间更晚。
推荐阅读
- python - 在 NGINX 中创建别名 url(在 Docker 中使用 proxy_pass)
- android - 如何以编程方式获取我的 Android 设备的 CPU 和处理器信息?
- azure-functions - Azure Functions 与可怜的 Mans 依赖注入?
- python - 嵌套情况下如何使用jinja2处理dict和list
- python - 如何将标题“Access-Control-Allow-Origin”设置为 selenium Webdriver
- php - 如何根据日期时间字段上的更新时间查找记录?
- css - 应用插件(niceselect)时,角度选择(更改)方法不起作用
- wiremock - 是否可以使用 Java 版本的 Wiremock-standalone 模拟两个端口?
- python - 如何将函数作为单独函数的一部分应用于 DataFrame
- jpeg - 如何强制 ROScompressed_image_transport 使用 libturbojpeg 进行 jpeg 压缩?