#Kata Sorted, SortWith y SortBy en Scala.

En este post te voy a explicar las diferencias entre Sorted, SortWith y SortBy en Scala.

Primeros pasos.

Todos estos métodos te sirven para aplicar ordenamiento a una colección. Dependiendo del tipo de colección vas a tener que especificar el tipo de comparación. Los tipos primitivos, por defecto, ya tienen escritos los componentes que permite su ordenación. Si quieres ordenar una clase, case class o un componente en específico, entonces, deberás escribir el código necesario para su ordenamiento.

Sorted.

Sorted permite ordenar una secuencia (Array, Vector, List, etc.). Para poder hacer eso necesita poder inferir el ordenamiento. El método sorted requiere una implementación de Ordering[T]. Existen varias formas de proporcionarlo:

SortWith.

SortWith atraviesa toda la colección con un método de ordenamiento: El método en cuestión es similar a fold o reduce; donde se ejecuta un predicado para transformar la colección.

SortBy.

Con SortBy especificas un predicado de comparación.  El criterio de comparación puede incluir más de un campo, tambien, puedes encadenar varias llamadas de sortBy, si tienes que ordenar por más de un criterio.


 

 

Referencias:

  1. https://www.baeldung.com/scala/sorting
  2. https://blog.knoldus.com/sorting-in-scala-using-sortedsortby-and-sortwith-function/
  3. https://alvinalexander.com/scala/how-to-sort-scala-collections-sortwith-sorted-ordered-ordering/

 

 

 

Gustavo Sánchez