2017-07-28 17 views
8

sıralamak için?LinkedLashMap'i Kotlin'deki değerlere göre sıralamak nasıl? tuşları ile ben</p> <pre><code>map.toSortedMap() </code></pre> <p>kullanabilirsiniz Ama KOTLIN değerlere göre LinkedHashMap sıralamak için en iyi yolu nedir

+1

aksi takdirde müteakip 'put's sonra sırasını garanti edemez, kendi' Map' uygulayan olmalıdır. ve 'SortedMap' yalnızca [Key] 'i destekler (http://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html#comparator--). –

cevap

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

Alex Filatov 'ın cevabı Sadece bir ekleme:

Boş birinci argüman (since Kotlin 1.1)

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

bırakabilir ya da referans sözdizimi kullanabilirsiniz

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

ve sonucu hemen yinelemek istiyorsanız, t Eğer şöyle listesinin her çifti destructure çünkü o toMap() çağrı:

map.toList().sortedBy(Pair<*, String>::second).forEach { (key, value) -> 
    // ... 
} 
İlgili konular