Las colecciones en Scala son una parte fundamental del lenguaje y proporcionan una manera eficiente y flexible de manejar grupos de datos. En esta lección, exploraremos los conceptos básicos de las colecciones en Scala, sus tipos principales y cómo utilizarlas.
Objetivos de la Lección
- Comprender qué son las colecciones en Scala.
- Conocer los tipos principales de colecciones.
- Aprender a crear y manipular colecciones básicas.
¿Qué son las Colecciones en Scala?
Las colecciones en Scala son estructuras de datos que permiten almacenar y manipular grupos de elementos. Scala proporciona una rica biblioteca de colecciones que incluye listas, conjuntos, mapas, arreglos, entre otros. Estas colecciones pueden ser mutables o inmutables.
Tipos de Colecciones
Scala divide sus colecciones en dos categorías principales:
- Colecciones Inmutables: No pueden ser modificadas después de su creación. Cualquier operación que altere una colección inmutable devuelve una nueva colección.
- Colecciones Mutables: Pueden ser modificadas después de su creación. Las operaciones pueden cambiar el contenido de la colección en lugar de devolver una nueva.
Principales Colecciones en Scala
Listas (List)
Las listas son colecciones inmutables que mantienen el orden de los elementos y permiten duplicados.
Conjuntos (Set)
Los conjuntos son colecciones que no permiten elementos duplicados. Pueden ser mutables o inmutables.
Mapas (Map)
Los mapas son colecciones de pares clave-valor. Pueden ser mutables o inmutables.
val mapa: Map[String, Int] = Map("uno" -> 1, "dos" -> 2, "tres" -> 3) println(mapa) // Output: Map(uno -> 1, dos -> 2, tres -> 3)
Arreglos (Array)
Los arreglos son colecciones mutables que permiten el acceso rápido a los elementos mediante índices.
val arreglo: Array[Int] = Array(1, 2, 3, 4, 5) println(arreglo.mkString(", ")) // Output: 1, 2, 3, 4, 5
Operaciones Básicas con Colecciones
Creación de Colecciones
Puedes crear colecciones utilizando los constructores proporcionados por Scala.
val lista = List(1, 2, 3) val conjunto = Set(1, 2, 3) val mapa = Map("a" -> 1, "b" -> 2) val arreglo = Array(1, 2, 3)
Acceso a Elementos
Puedes acceder a los elementos de una colección utilizando índices o claves.
Transformaciones
Las colecciones en Scala soportan una variedad de operaciones de transformación como map
, filter
, flatMap
, etc.
val listaDoblada = lista.map(_ * 2) // Output: List(2, 4, 6) val listaFiltrada = lista.filter(_ % 2 == 0) // Output: List(2)
Ejercicios Prácticos
Ejercicio 1: Crear y Manipular una Lista
Crea una lista de números del 1 al 10 y luego filtra los números pares.
val numeros = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val pares = numeros.filter(_ % 2 == 0) println(pares) // Output: List(2, 4, 6, 8, 10)
Ejercicio 2: Crear y Manipular un Mapa
Crea un mapa con tres pares clave-valor y luego accede a uno de los valores utilizando su clave.
Ejercicio 3: Crear y Manipular un Conjunto
Crea un conjunto de números y luego añade un nuevo número al conjunto.
Conclusión
En esta lección, hemos introducido las colecciones en Scala, explorando sus tipos principales y cómo utilizarlas. Las colecciones son una herramienta poderosa en Scala que te permitirá manejar datos de manera eficiente y flexible. En las próximas lecciones, profundizaremos en cada tipo de colección y aprenderemos más sobre sus operaciones avanzadas.
¡Continúa practicando y experimentando con las colecciones para familiarizarte con su uso en Scala!
Curso de Programación en Scala
Módulo 1: Introducción a Scala
- Introducción a Scala
- Configuración del Entorno de Desarrollo
- Conceptos Básicos de Scala: Sintaxis y Estructura
- Variables y Tipos de Datos
- Operaciones Básicas y Expresiones
Módulo 2: Estructuras de Control y Funciones
- Sentencias Condicionales
- Bucles e Iteraciones
- Funciones y Métodos
- Funciones de Orden Superior
- Funciones Anónimas
Módulo 3: Colecciones y Estructuras de Datos
- Introducción a las Colecciones
- Listas y Arreglos
- Conjuntos y Mapas
- Tuplas y Opciones
- Coincidencia de Patrones
Módulo 4: Programación Orientada a Objetos en Scala
- Clases y Objetos
- Herencia y Rasgos
- Clases Abstractas y Clases Caso
- Objetos Compañeros
- Objetos Singleton
Módulo 5: Programación Funcional en Scala
- Inmutabilidad y Funciones Puras
- Estructuras de Datos Funcionales
- Mónadas y Funtores
- Comprensiones For
- Manejo de Errores en Programación Funcional
Módulo 6: Conceptos Avanzados de Scala
- Conversiones y Parámetros Implícitos
- Clases de Tipo y Polimorfismo
- Macros y Reflexión
- Concurrencia en Scala
- Introducción a Akka