Map is same as dictionary which holds key:value pairs. In this article, we will learn how to sort a Scala Map by key. We can sort the map by key, from low to high or high to low, using sortBy.
Syntax :
mapName.toSeq.sortBy(_._1):_*
Let’s try to understand it with better example.
Example #1:
// Scala program to sort given map by key import scala.collection.immutable.ListMap
// Creating object object GfG
{ // Main method
def main(args : Array[String])
{
// Creating a map
val mapIm = Map( "Zash" - > 30 ,
"Jhavesh" - > 20 ,
"Charlie" - > 50 )
// Sort map by key
val res = ListMap(mapIm.toSeq.sortBy( _ . _ 1 ) :_ *)
println(res)
}
} |
Output:
Map(Charlie -> 50, Jhavesh -> 20, Zash -> 30)
Example #2:
// Scala program to sort given map by key import scala.collection.immutable.ListMap
// Creating object object GfG
{ // Main method
def main(args : Array[String])
{
// Creating a map
val mapIm = Map( "Zash" - > 30 ,
"Jhavesh" - > 20 ,
"Charlie" - > 50 )
// reverse map in ascending order
val res = ListMap(mapIm.toSeq.sortWith( _ . _ 1 < _ . _ 1 ) :_ *)
println(res)
}
} |
Output:
Map(Charlie -> 50, Jhavesh -> 20, Zash -> 30)
Example #3:
// Scala program to sort given map by key import scala.collection.immutable.ListMap
// Creating object object GfG
{ // Main method
def main(args : Array[String])
{
// Creating a map
val mapIm = Map( "Zash" - > 30 ,
"Jhavesh" - > 20 ,
"Charlie" - > 50 )
// reverse map in descending order
val res = ListMap(mapIm.toSeq.sortWith( _ . _ 1 > _ . _ 1 ) :_ *)
println(res)
}
} |
Output:
Map(Zash -> 30, Jhavesh -> 20, Charlie -> 50)