2017-02-25 10 views
1

によってハッシュマップは、これが私の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"} 
] 

は、私はすでにハッシュマップするには、上記に変換しています。今私は日付値の項目を並べ替えるしたいと思います。

これを達成するのに役立つ組み込み関数はありますか?例えばのように。 Pythonでソートされました

+2

HashMapは、定義上、ソートされません。あなたのエントリーをリストに入れ、リストを並べ替えます。 –

+2

ハッシュマップのキーと値は何ですか? –

+0

私は奇妙に思えますが、ハッシュマップは辞書に似ていてはいけません。私は何が欠けていますか? –

答えて

5

私はすでに上記をハッシュマップに変換しました。

私はそれをしないことをお勧めします。 Personに名前、日付、IDがあるList<Person>に変換することをお勧めします。 (Personであれば他のクラスもあります)マップよりもリストとして意味があります。これは実際にはJSONが示すものなので、名前、日付、IDを持つオブジェクトのリストです。私は個人的に日付をjava.time.Instantか何か似ていると思うが、それは別の問題だ。

その時点で、オブジェクトを日付で比較するComparator<Person>を実装するか、同じ方法でPersonComparable<Person>を実装するだけです。別のComparator<Person>を使用すると、List<Person>を名前またはIDでソートすることも同様に妥当と思われるので、この場合はより適切と感じます。その後、Collections.sort(people, comparator)に電話するだけで完了です。スタックオーバーフローには、特定のプロパティでソートするための例がたくさんあります。

重要な部分は、あなたが持っているものは当然地図ではないことを認識することです。それはリストです。