Open in App
Not now

How to sort a Scala Map by value

• Last Updated : 01 Oct, 2021

In this article, we will learn how to sort a Scala Map by value. We can sort the map by key, from low to high or high to low, using sortBy method.

Syntax:

`MapName.toSeq.sortBy(_._2):_*`

Let’s try to understand it with better example.

Example #1:

Scala

 `// Scala program to sort given map by value` `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 the map by value` `        ``val` `res ``=` `ListMap(mapIm.toSeq.sortBy(``_``.``_``2``)``:_``*)` `        ``println(res)` `    ``} ` `} `

Output:

`Map(Jhavesh -> 20, Zash -> 30, Charlie -> 50)`

In above example, we can see mapIm.toSeq.sortBy method is used to sort the map by key values.

Example #2:

Scala

 `// Scala program to sort given map by value` `// in ascending order` `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 value in ascending order` `        ``val` `res ``=` `ListMap(mapIm.toSeq.sortWith(``_``.``_``2` `<` `_``.``_``2``)``:_``*)` `        ``println(res)` `    ``} ` `} `

Output:

`Map(Jhavesh -> 20, Zash -> 30, Charlie -> 50)`

Here, In above example we are sorting map in ascending order by using mapIm.toSeq.sortWith(_._2 < _._2):_*

Example #3:

Scala

 `// Scala program to sort given map by value` `// in descending order` `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 value in descending order` `        ``val` `res ``=` `ListMap(mapIm.toSeq.sortWith(``_``.``_``2` `>` `_``.``_``2``)``:_``*)` `        ``println(res)` `    ``} ` `} `

Output:

`Map(Charlie -> 50, Zash -> 30, Jhavesh -> 20)`

Above example show to sorting map in descending order.

My Personal Notes arrow_drop_up
Related Articles