En este artículo, aprenderemos cómo ordenar un Scala Map por valor. Podemos ordenar el mapa por clave, de menor a mayor o de mayor a menor, utilizando el método sortBy .
Sintaxis:
MapName.toSeq.sortBy(_._2):_*
Tratemos de entenderlo con un mejor ejemplo.
Ejemplo 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) } }
Producción:
Map(Jhavesh -> 20, Zash -> 30, Charlie -> 50)
En el ejemplo anterior, podemos ver que el método mapIm.toSeq.sortBy se usa para ordenar el mapa por valores clave.
Ejemplo #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) } }
Producción:
Map(Jhavesh -> 20, Zash -> 30, Charlie -> 50)
Aquí, en el ejemplo anterior, estamos ordenando el mapa en orden ascendente usando mapIm.toSeq.sortWith(_._2 < _._2):_*
Ejemplo #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) } }
Producción:
Map(Charlie -> 50, Zash -> 30, Jhavesh -> 20)
El ejemplo anterior muestra el mapa de clasificación en orden descendente.