Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 按日期对hashmap排序_Java_Sorting_Hashmap - Fatal编程技术网

Java 按日期对hashmap排序

Java 按日期对hashmap排序,java,sorting,hashmap,Java,Sorting,Hashmap,这是我的json: [ {"name": "John Smith","date":"2017-02-02T23:07:09Z","id":"1223234"} {"name": "John Doe","date":"2015-07-03T21:05:10Z","id":"3242342"}, {"name": "Jane Fan","date":"2016-12-22T13:27:19Z","id":"2123444"} ] 我已经将上述内容转换为hashmap。现在我想根据日期值对项目进行排

这是我的json:

[
{"name": "John Smith","date":"2017-02-02T23:07:09Z","id":"1223234"}
{"name": "John Doe","date":"2015-07-03T21:05:10Z","id":"3242342"},
{"name": "Jane Fan","date":"2016-12-22T13:27:19Z","id":"2123444"}
]
我已经将上述内容转换为hashmap。现在我想根据日期值对项目进行排序

是否有内置函数可以帮助我实现这一点?比如用Python排序

我已经将上述内容转换为hashmap

我建议你不要那样做。我建议你把它转换成一个
列表
,其中每个
都有一个名字、日期和ID。(如果不是
,那么其他一些类。)它作为一个列表比一个映射更有意义,因为JSON真正显示的是:一个对象列表,每个对象都有一个名称,日期和ID。我个人会将日期设置为
java.time.Instant
或类似的,但这是另一回事

此时,您需要做的就是实现一个按日期比较对象的
比较器
,或者以相同的方式使
实现
可比
。在这种情况下,使用单独的
比较器
感觉更合适,因为按名称或ID对
列表进行排序似乎同样合理。然后您只需调用
集合。排序(人员,比较器)
,就完成了。有很多关于堆栈溢出的示例可以帮助您按特定属性进行排序


关键是要认识到,你得到的不是一个映射,而是一个列表。

根据定义,哈希映射是不排序的。将您的条目放入列表中,并对列表进行排序。那么您的hashmap的键和值是什么呢?如果我听起来很奇怪,我很抱歉,但是hashmap不应该类似于字典。我遗漏了什么?@EchchamaNayak:JSON给你的是有序的项目序列,而不是地图。这自然是一个
列表
,而不是
地图