Cómo manipular científicamente colecciones en Scala
Colecciones mutables e inmutables
Las clases de colecciones de Scala distinguen sistemáticamente entre colecciones mutables e inmutables.
Todas las clases de colección en el paquete scala.collection
Todas las clases de colección en el paquete scala.collection.mutable
Las colecciones mutables, como sugiere el nombre, significan que Modificar, eliminar o añadir elementos.
Todas las clases de colección en scala.collection.mutable
En comparación con las colecciones mutables, las colecciones inmutables nunca se pueden cambiar, pero aún puedes operar como colecciones mutables. Manipular colecciones inmutables (modificar, agregar , o eliminar un elemento de la colección), excepto que en cada caso estas operaciones devuelven una nueva colección, dejando la colección original sin cambios. Debido a esta característica, las colecciones inmutables también son seguras para subprocesos y Scala usa colecciones inmutables de forma predeterminada. Scala usa colecciones inmutables de forma predeterminada. Por tanto, se prefieren las colecciones inmutables. Las colecciones inmutables son adecuadas para la mayoría de situaciones.
Uso de diferentes colecciones
Las tres colecciones más utilizadas son Lista, Conjunto y Mapa.
List List
List hereda de Seq y los elementos de la colección son repetibles.
Por ejemplo:
scalagt; val l = Lista(1, 1, 2, 2, 3, 5)
l: Lista[Int]= Lista (1, 1, 2, 2, 3, 5)
Entonces, cuando los elementos de la colección son repetibles, puedes elegir Lista o Sec.
Conjunto Conjunto
Los elementos de un conjunto son irreductibles.
Por ejemplo:
scalagt; val s = Set(1, 1, 2, 2, 3, 5)
s: scala.collection.immutable . Set[Int] = Set(1, 2, 3, 5)
Por lo tanto, Set se puede seleccionar cuando los elementos del conjunto son irreducibles.
Mapa de mapeo
Los elementos en Map tienen la forma de clave -gt valor, donde el primer parámetro es la clave de mapeo y el segundo parámetro es el valor de mapeo. El primer parámetro es la clave del mapa y el segundo parámetro es el valor del mapa. La clave es única para cada elemento del mapa.
Por ejemplo:
scalagt; val m = Mapa(1 -gt; 1, 1 -gt; 3, 2 -gt; 3, 3 -gt; 4, 4 - gt ; 4, 5 -gt; 7)
m: scala.collection.immutable.Map[Int.Int] = Mapa(5 -gt; 4, 5 -gt; 7)
m: scala.collection.immutable.Map[Int.Int] = Mapa(5 -gt; 7, 1 -gt; 3, 2 -gt; 3, 3 -gt; 4, 4 -gt; 4)
Por lo tanto, cuando los elementos de la colección tienen la forma de valor clave-gt y la clave de cada elemento no se repite, se seleccionará Mapa.
Uso de métodos en colecciones
Comparación de operaciones de colección
Antes de comprender los escenarios de aplicación del uso de diferentes métodos, primero comparemos cómo operan los diferentes métodos en la misma colección. . diferencias en los resultados producidos.
Comparación de mapas, filtrar y recopilar
/Definir una lista
scalagt; val l = List(1, 2, 3, 4, 5)
l:List[Int] = List(1, 2, 3, 4, 5)
//operación de mapa
scalagt; * 2)
res0: Lista[Int] = Lista(2, 4, 6, 8, 10)