Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对地图进行排序<;字符串,字符串>;基于日期,其中地图的一个元素(值)是日期?_Java_Sorting_Collections - Fatal编程技术网

Java 如何对地图进行排序<;字符串,字符串>;基于日期,其中地图的一个元素(值)是日期?

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并对输入进行解析,而不是在排序过程中进行解析

如何根据日期对地图进行排序,其中地图的一个元素(值)是日期,我必须根据日期进行排序,而不删除重复项。(JDK1.7)


在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())))
    ...