2016-09-02 12 views
-3

のマップ:ソート私は次のオブジェクト持っている特定の順序

Map<String, Map<String, Serializable>> resultList; 

これらの値が含まれていますfor_closing、閉鎖、期限切れ)、おそらく列挙型なのか?ソート後resultListは、この順序を持​​つことになります。

{ 
for_action={count=3, status=For action} 
for_closing={count=3, status=For closing}, 
closed={count=1, status=Closed}, 
overdue={count=1, status=Overdue}, 
} 
+3

['SortedMap'](https://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html)のような意味ですか? – bradimus

+0

@bradimusは本当に(opはアルファベット順を望んでいません) - LinkedHashMapがおそらくその仕事のためのより良い候補になるでしょう。 – assylias

+3

私はあなたが戻ってあなたのデータ構造を再考すべきだと思います。これは...奇妙に見えます。そして、注意:あなたの変数名に "コレクション"タイプを追加しないでください。ヒント:何か結果を呼び出す**リスト**は、実際にはMAPであり、その点を正確に証明します。 – GhostCat

答えて

2

あなたの所望の順序で列挙型を定義することができます。

public enum Tasks { 
    FOR_ACTION, 
    FOR_CLOSING, 
    CLOSED, 
    OVERDUE 
} 

次にキーとして列挙型を使用してのTreeMapを作成します。

TreeMap<Tasks, Map<String, Serializable>> resultList

+1

あなたのタスクは同等である必要があります。そうしないと、実行時に例外が発生します。 – assylias

+3

Javaの列挙型はこれに匹敵します:https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html –

+0

もちろんあなたは正しいです - 私の悪い – assylias

関連する問題