2017-07-28 15 views
8

LinkedHashMapをKotlinの値でソートする方法は?私は</p> <pre><code>map.toSortedMap() </code></pre> <p>を使用することができます。しかしKotlinの値でのLinkedHashMapソートするための最良の方法は何であるのキーでソートするには

+1

あなたがそうでなければ、あなたがそれに続く 'put's後の順序を保証することはできません、あなた自身の' Map'を実装する必要があります。 'SortedMap'は[Key](http://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html#comparator--)のみをサポートしています。 –

答えて

13
map.toList() 
    .sortedBy { (key, value) -> value } 
    .toMap() 
0

Alex Filatovの答えにジャストほか:

あなたは空白の最初の引数(since Kotlin 1.1

map.toList().sortedBy { (_, value) -> value }.toMap() 

を残すことができるか、参照構文を使用することができます

map.toList().sortedBy(Pair<*, String>::second).toMap() 

あなたがすぐに結果を反復したい場合、あなたはtを必要としません彼toMap()コールあなたがそうのように、リストの各ペアをdestructureことができるので:

map.toList().sortedBy(Pair<*, String>::second).forEach { (key, value) -> 
    // ... 
} 
関連する問題