Tässä ohjelmassa opit lajittelemaan tietyn kartan Kotlinin arvojen mukaan.
Esimerkki: Lajittele kartta arvojen mukaan
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) ) )
Kun suoritat ohjelmaa, tulos on:
Avain: Australia Arvo: Canberra-avain: Nepal-arvo: Kathmandu-avain: Englanti Arvo: Lontoon avain: Intia Arvo: New Delhi-avain: Yhdysvallat Arvo: Washington
Yllä olevassa ohjelmassa meillä on HashMap
maat ja niiden pääkaupungit, jotka on tallennettu muuttuviin pääkaupungeihin.
Kartan lajittelemiseen käytämme sarjaa toimintoja, jotka suoritetaan yhdellä rivillä:
val tulos = isot kirjaimet.Listalle (). sortedBy ((_, arvo) -> arvo). kartalle ()
- Ensin isot kirjaimet muunnetaan luetteloksi käyttämällä
toList()
. - Sitten
sortedBy()
sitä käytetään lajittelemaan luettelo arvon mukaan( (_, value) -> value)
. Käytämme_
avainta, koska emme käytä sitä lajitteluun. - Lopuksi muunnamme sen takaisin kartaksi käyttämällä
toMap()
ja tallentamalla sen tulokseen.
Tässä on vastaava Java-koodi: Java-ohjelma kartan lajittelemiseksi arvojen mukaan.