2017-12-14 10 views
1

私はそれがキーだことにより、一つのオブジェクトを取得する能力を持っているMutableMapJSON -loadedオブジェクトを格納しています(JSONobjectでidフィールドに付属):他のオブジェクトフィールドをインデックスとして保存して、オブジェクトフィールドでMutableMapをソートする方法はありますか?

[{id: 1, name: "Red"}, {id: 2, name: "Green"}] 

を私はしたい指標としてidを使用していますMutableMapnameを出力してください。

マッピングと出力に別々のコンテナを使用するか、1つのコンテナで両方を実行する必要がありますか?

sortByValueへ
+0

だから?質問ありますか?ソリューションに問題が発生しましたか?なにが問題だったの?どのような解決策を試しましたか? – voddan

+0

@voddanはい、私はいくつかのヒントを求めています:正しい方法をとっているか、マッピングと出力のために別々の容器を使うべきです。 –

+1

ああ、大丈夫です。あなたはその質問でそれを聞かなかったので、私は混乱しました。私は「質問をする」部分を追加しました。あなたが気にしないことを願っています。 – voddan

答えて

0

あなたが試すことができ、

private fun sortingByValue() { 

     val map = hashMapOf<Int, String>() 
     map.put(1, "Red") 
     map.put(2, "Green") 

     val result = map.toList().sortedBy { (_, value) -> value }.toMap() 
     for (entry in result) { 
      print("key : ${entry.key}") 
      println("value : ${entry.value}") 
     } 
    } 

  • マップ

    toList()を使用してリストに変換されます。

  • sortedBy()は、リストをvalue { (_, value) -> value}でソートするために使用されます。 ソートに使用しないため、_には_を使用します。

  • toMap()を使用してマップに戻して結果に保存します。

+0

@アレキサンダーMatveevはあなたの問題解決ですか? –

+0

はい。そんなに短い方法ではありませんが、うまくいきます。 –

+0

マップをリストに変換するのではなく、 'entries'コレクションだけを使うことができます。 – Ilya

関連する問題