Open in App
Not now

# How to sort a Scala Map by key

• Last Updated : 13 Aug, 2019

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)
```

My Personal Notes arrow_drop_up
Related Articles