U ovom programu naučit ćete sortirati datu kartu prema vrijednostima u Kotlinu.
Primjer: Poredaj kartu prema vrijednostima
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) ) )
Kada pokrenete program, izlaz će biti:
Ključ: Australija Vrijednost: Canberra Ključ: Nepal Vrijednost: Kathmandu Ključ: Engleska Vrijednost: London Ključ: Indija Vrijednost: New Delhi Ključ: Sjedinjene Države Vrijednost: Washington
U gore navedenom programu imamo HashMap
zemlje sa zemljama i njihovim glavnim gradovima pohranjene u različitim glavnim gradovima.
Za sortiranje karte koristimo niz operacija izvršenih u jednom retku:
val rezultat = capitals.toList (). sortedBy ((_, value) -> value) .toMap ()
- Prvo se velikim slovima pretvara u popis pomoću
toList()
. - Zatim
sortedBy()
se koristi za sortiranje popisa po vrijednosti( (_, value) -> value)
. Koristimo_
za ključ jer ga ne koristimo za sortiranje. - Konačno, pretvaramo ga natrag u mapu pomoću
toMap()
i pohranjujemo u rezultat.
Evo ekvivalentnog Java koda: Java program za sortiranje karte prema vrijednostima.