2017-02-25 186 views
1

一個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中排序

+2

根據定義,HashMap沒有排序。把你的條目放入列表中,然後對列表進行排序。 –

+2

那麼hashmap的關鍵和價值是什麼? –

+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有很多例子可以幫助你按特定屬性進行排序。

關鍵是要認識到你得到的不是自然的地圖 - 它是一個列表。