这是我的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排序
答案 0 :(得分:5)
我已将上面的内容转换为hashmap。
我建议你不要这样做。我建议您将其转换为List<Person>
,其中每个Person
都有一个名称,日期和ID。 (如果不是Person
则是其他类。)作为列表而不是地图更有意义,因为这正是JSON所显示的:对象列表,每个对象都有名称,日期和ID。我个人将日期设为java.time.Instant
或类似的东西,但这是另一回事。
此时,您需要做的就是实现按日期比较对象的Comparator<Person>
,或者以相同的方式使Person
实现Comparable<Person>
。在这种情况下,使用单独的Comparator<Person>
感觉更合适,因为按名称或ID对List<Person>
进行排序似乎同样合理。然后你只需要致电Collections.sort(people, comparator)
就可以了。 Stack Overflow上有很多示例可以帮助您按特定属性进行排序。
关键部分是要意识到你所拥有的并不是一张地图 - 这是一张清单。