Cómo ordenar un Scala Map por valor

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. 
 

Publicación traducida automáticamente

Artículo escrito por Shivam_k y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *