Java 如何对地图进行排序<;字符串,字符串>;基于日期,其中地图的一个元素(值)是日期?
如何根据日期对地图进行排序,其中地图的一个元素(值)是日期,我必须根据日期进行排序,而不删除重复项。(JDK1.7)Java 如何对地图进行排序<;字符串,字符串>;基于日期,其中地图的一个元素(值)是日期?,java,sorting,collections,Java,Sorting,Collections,如何根据日期对地图进行排序,其中地图的一个元素(值)是日期,我必须根据日期进行排序,而不删除重复项。(JDK1.7) 在Java 8中,可以使用以下命令按值对映射进行排序: DateFormat format = ... hMap.entrySet().stream() .sorted(Comparator.comparing(e -> format.parse(e.getValue()))) ... 虽然您最好将其存储为Map并对输入进行解析,而不是在排序过程中进行解析
在Java 8中,可以使用以下命令按值对映射进行排序:
DateFormat format = ...
hMap.entrySet().stream()
.sorted(Comparator.comparing(e -> format.parse(e.getValue())))
...
虽然您最好将其存储为
Map
并对输入进行解析,而不是在排序过程中进行解析。我想您需要hMap.put
。但您的预期输出是什么?那是一个真实的日期吗?或者它只是一个字符串
,就像您的示例中那样?您需要知道日期的格式。您需要使用SImpleDataFormat或DateTimeFormatter。不清楚你遇到了什么问题。有一张带字符串和日期的地图有什么意义?如果将日期格式转换为字符串,请将其排序为实现比较器的字符串。你所说的“一个元素就是一个日期”是什么意思?如果值是混合类型,如何对其进行排序?这些是映射中的现有值,格式为:yyyyMMdd
hMap.put("1","a")
hMap.put("2","b")
hMap.put("3","date");// here I can convert it to date by the help of SimpleDateFormat(yyyyMMdd).
DateFormat format = ...
hMap.entrySet().stream()
.sorted(Comparator.comparing(e -> format.parse(e.getValue())))
...