Red de conocimiento informático - Material del sitio web - Cómo manipular científicamente colecciones en Scala

Cómo manipular científicamente colecciones en Scala

En el desarrollo diario de proyectos, casi siempre utilizamos conjuntos y algunas operaciones de conjuntos en Scala. Debido a que las colecciones en Scala son tan flexibles, puede resultar confuso para los desarrolladores nuevos en Scala elegir qué colecciones usar y qué operaciones de colección. Aunque la mayoría de las veces el problema se resuelve, a veces no se toma la mejor decisión. Manipular colecciones de manera científica y razonable en Scala puede hacer que nuestro código sea más conciso y eficiente.

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)