2017-07-28 115 views
8

要按鍵,我可以使用如何使用Kotlin中的值對LinkedHashMap進行排序?

map.toSortedMap() 

但是,什麼是在科特林值進行排序的LinkedHashMap的最佳方式?

+1

你應該實現自己的'Map',否則無法後續'put's後保證順序。和'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()通話,因爲你可以解構每對列表中的像這樣:

map.toList().sortedBy(Pair<*, String>::second).forEach { (key, value) -> 
    // ... 
} 
相關問題