w3resource

Scala Map: Sort by values in ascending order

Scala Map Exercise-17 with Solution

Write a Scala program to create a map and sort it by values in ascending order.

Sample Solution:

Scala Code:

object SortMapByValuesExample {
  def main(args: Array[String]): Unit = {
    // Create a map
    var color_map = Map("Red" -> 1, "Green" -> 4, "Blue" -> 2, "Orange" -> 3)
   
    // Print the original map
    println("Original map: " + color_map)

    // Sort the map by values in ascending order
    val sortedMap = color_map.toSeq.sortBy(_._2).toMap

    // Print the sorted map
    println("Sorted map by values:")
    sortedMap.foreach { case (key, value) =>
      println(s"Key: $key, Value: $value")
    }
  }
}

Sample Output:

Original map: Map(Red -> 1, Green -> 4, Blue -> 2, Orange -> 3)
Sorted map by values:
Key: Red, Value: 1
Key: Blue, Value: 2
Key: Orange, Value: 3
Key: Green, Value: 4

Explanation:

In the above exercise,

In this program, we create a map "color_map" using the Map constructor and provide key-value pairs.

Following are the steps to sort the map by values in ascending order:

  • Convert the map to a sequence of key-value pairs using the toSeq method.
  • Use the sortBy method on the sequence and specify .2 as the sorting criterion, which refers to the second element of each pair (the value).
  • Convert the sorted sequence back to a map using the toMap method.

In the end, we display each key-value pair by iterating over the sorted map using println.

Scala Code Editor :

Previous: Sort by keys in ascending order.
Next: Find common keys between two maps.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.