这是我的 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中排序
最佳答案
I have already converted the above to hashmap.
我建议你不要这样做。我建议你将其转换为List<Person>
其中每个 Person
有姓名、日期和 ID。 (如果不是 Person
,则为其他类。)它作为列表比 map 更有意义,因为这实际上是 JSON 显示的内容:对象列表,每个对象都有名称、日期和 ID。我个人会将日期设为 java.time.Instant
或类似的东西,但这是一个单独的问题。
此时,您需要做的就是实现 Comparator<Person>
按日期比较对象,或 make Person
实现Comparable<Person>
以同样的方式。使用单独的Comparator<Person>
在这种情况下感觉更合适,因为对 List<Person>
进行排序似乎同样合理。通过姓名或 ID。那么您只需调用 Collections.sort(people, comparator)
你就完成了。 Stack Overflow 上有很多示例可以帮助您按特定属性进行排序。
关键是要认识到您所拥有的并不是一张 map ,而是一个列表。
关于java - 按日期对 HashMap 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42459176/