Example: Sort a map by values
fun main(args: Array<String>) {
var capitals = hashMapOf<String, String>()
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)
}
}
When you run the program, the output will be:
Key: Australia Value: Canberra Key: Nepal Value: Kathmandu Key: England Value: London Key: India Value: New Delhi Key: United States Value: Washington
In the above program, we have a HashMap
with countries and their respective capitals stored in a variable capitals.
To sort the map, we use a series of operations executed in a single line:
val result = capitals.toList().sortedBy { (_, value) -> value}.toMap()
- First, capitals is converted to a list using
toList()
. - Then,
sortedBy()
is used to sort the list by value{ (_, value) -> value}
. We use_
for key because we don't use it for sorting. - Finally, we convert it back to map using
toMap()
and store it in result.
Here's the equivalent Java code: Java program to sort a map by values.