V tomto programu se naučíte třídit danou mapu podle hodnot v Kotlin.
Příklad: Řazení mapy podle hodnot
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) ) )
Když spustíte program, výstup bude:
Klíč: Austrálie Hodnota: Canberra Klíč: Nepál Hodnota: Káthmándú Klíč: Anglie Hodnota: Londýn Klíč: Indie Hodnota: Nové Dillí Klíč: USA Hodnota: Washington
Ve výše uvedeném programu máme a HashMap
se zeměmi a jejich příslušnými hlavními městy uloženými v proměnných hlavních městech.
K seřazení mapy používáme řadu operací prováděných v jednom řádku:
výsledek val = capitals.toList (). seřazenoBy ((_, hodnota) -> hodnota) .toMap ()
- Nejprve se velká písmena převedou na seznam pomocí
toList()
. - Potom
sortedBy()
se používá k seřazení seznamu podle hodnoty( (_, value) -> value)
. Používáme_
pro klíč, protože ho nepoužíváme pro třídění. - Nakonec jej převedeme zpět na mapu pomocí
toMap()
a uložíme do výsledku.
Tady je ekvivalentní kód Java: Program Java pro třídění mapy podle hodnot.