В тази програма ще се научите да сортирате дадена карта по стойности в Kotlin.
Пример: Сортиране на карта по стойности
fun main(args: Array) ( var capitals = hashMapOf() capitals.put("Nepal", "Kathmandu") capitals.put("India", "New Delhi") capitals.put("United States", "Washington") capitals.put("England", "London") capitals.put("Australia", "Canberra") val result = capitals.toList().sortedBy ( (_, value) -> value).toMap() for (entry in result) ( print("Key: " + entry.key) println(" Value: " + entry.value) ) )
Когато стартирате програмата, изходът ще бъде:
Ключ: Австралия Стойност: Канбера Ключ: Непал Стойност: Катманду Ключ: Англия Стойност: Лондон Ключ: Индия Стойност: Ню Делхи Ключ: САЩ Стойност: Вашингтон
В горната програма имаме a HashMap
с държави и съответните им столици, съхранени в променливи столици.
За да сортираме картата, използваме поредица от операции, изпълнени в един ред:
val резултат = capitals.toList (). sortedBy ((_, value) -> value) .toMap ()
- Първо, капиталите се преобразуват в списък с помощта
toList()
. - След това
sortedBy()
се използва за сортиране на списъка по стойност( (_, value) -> value)
. Използваме_
за ключ, защото не го използваме за сортиране. - И накрая, ние го преобразуваме обратно в карта, като
toMap()
го използваме и съхраняваме в резултат.
Ето еквивалентния Java код: Java програма за сортиране на карта по стойности.