Mapas (parte 2 de 2): Operaciones

Sí amigos, aquí también hay de eso. Operaciones que podemos llevar a cabo tanto con mapas como con mapas mutables. Principalmente concatenar cosas en mapas y retirar cosas de mapas. Para todo lo demás: el ScalaDoc de la clase Map: http://www.scala-lang.org/api/2.10.3/index.html#scala.collection.Map. Y el ScalaDoc del mutable.Map: http://www.scala-lang.org/api/2.10.3/#scala.collection.mutable.Map

Este curso ha sido marcado como anticuado y no está siendo revisado de forma activa. Es posible que la información pueda estar desactualizada o que los enlaces se hayan roto.

Cuando trabajamos con mapas en Scala, es fundamental entender cómo realizar operaciones básicas como agregar, eliminar y concatenar elementos, tanto en mapas inmutables como mutables. Empecemos por los mapas inmutables, que son los que se usan por defecto en Scala.

Para agregar elementos a un mapa inmutable, podemos utilizar la operación suma, que en Scala se representa con el símbolo +. Aunque internamente es un método llamado +, podemos usarlo de forma natural con el operador +. Por ejemplo, si tenemos un mapa con dos elementos y queremos añadir un nuevo par clave-valor, simplemente sumamos ese par al mapa original. Esto no modifica el mapa original, sino que devuelve un nuevo mapa con los elementos anteriores más el nuevo.

val mapa = Map(1 -> "Ana", 2 -> "Luis")
val mapaActualizado = mapa + (3 -> "Luis")

Aquí, mapa sigue igual, y mapaActualizado contiene los tres elementos. Podemos agregar tantos pares como queramos usando esta operación.

Para eliminar elementos, usamos el operador -, que recibe la clave que queremos eliminar. Al igual que con la suma, esta operación devuelve un nuevo mapa sin la clave indicada, sin modificar el original.

val mapaSinLuis = mapaActualizado - 3

En este caso, mapaSinLuis no tendrá la clave 3 ni su valor asociado.

Cuando queremos combinar dos mapas, podemos usar la operación ++, que concatena dos mapas. Si ambos mapas tienen claves repetidas, el valor que prevalece es el del mapa que se pasa a la derecha en la operación. Esto es importante porque las claves en un mapa deben ser únicas.

val mapa1 = Map(1 -> "BMW", 2 -> "Mercedes", 3 -> "Renault")
val mapa2 = Map(3 -> "Toyota", 4 -> "Mini")
val mapaConcatenado = mapa1 ++ mapa2

En este ejemplo, la clave 3 aparece en ambos mapas, pero en mapaConcatenado el valor asociado a la clave 3 será "Toyota", que viene del segundo mapa.

Por otro lado, Scala también ofrece mapas mutables, que permiten modificar su contenido directamente. Para usarlos, primero importamos el paquete correspondiente:

import scala.collection.mutable

Luego, podemos crear un mapa mutable y agregar elementos usando el operador +=, que modifica el mapa en el lugar.

val mapaMutable = mutable.Map(1 -> "Renault", 2 -> "BMW")
mapaMutable += (3 -> "Opel")
mapaMutable += (4 -> "Toyota")

Aquí, mapaMutable se actualiza con los nuevos pares clave-valor sin necesidad de crear una copia.

Otra forma de insertar o modificar elementos en un mapa mutable es usando el método put:

mapaMutable.put(3, "Toyota")

También podemos asignar directamente un valor a una clave usando la sintaxis de paréntesis:

mapaMutable(3) = "Toyota"

Esta última forma no devuelve nada, simplemente modifica el mapa.

Para concatenar mapas mutables, podemos usar el operador ++=, que añade todos los elementos de otro mapa al mapa mutable original, modificándolo en el lugar.

Eliminar elementos en mapas mutables también es sencillo con el operador -=:

mapaMutable -= 2

Esto elimina la clave 2 y su valor asociado del mapa mutable.

Además, los mapas mutables ofrecen métodos como retain para filtrar elementos según una condición, y clear para vaciar completamente el mapa.

En resumen, las operaciones con mapas en Scala son muy similares a las que conocemos de conjuntos y listas, con la diferencia clave de que los mapas manejan pares clave-valor y las claves deben ser únicas. La elección entre mapas mutables e inmutables dependerá de si queremos modificar el mapa original o trabajar con copias nuevas tras cada operación.

Lista de reproducción
  1. 1
    Introducción a Scala
    6 minutos
  2. 2
    Instalar Scala
    6 minutos
  3. 3
    Primeros pasos con el intérprete
    5 minutos
  4. 4
    Variables con val y var
    7 minutos
  5. 5
    Declarando funciones
    7 minutos
  6. 6
    Inciso sobre Units e iguales
    5 minutos
  7. 7
    Presentación de los objetos singleton
    6 minutos
  8. 8
    Editando y compilando archivos
    8 minutos
  9. 9
    Descargar e instalar Scala IDE
    6 minutos
  10. 10
    Proyectos y worksheets en Scala IDE
    7 minutos
  11. 11
    El condicional IF en Scala
    8 minutos
  12. 12
    Un caso sencillo de MATCH
    6 minutos
  13. 13
    Bucles WHILE y DO-WHILE (y String Interpolation)
    7 minutos
  14. 14
    El sistema de tipos
    7 minutos
  15. 15
    Colecciones
    9 minutos
  16. 16
    Funciones básicas de una colección
    8 minutos
  17. 17
    El map (es sensacional)
    8 minutos
  18. 18
    Flatten y flatMap
    9 minutos
  19. 19
    Sets, parte 1 de 3: Set
    8 minutos
  20. 20
    Sets, parte 2 de 3: Sets mutables
    4 minutos
  21. 21
    Sets, parte 3 de 3: SortedSet
    6 minutos
  22. 22
    Mapas (parte 1 de 2): Creando mapas
    9 minutos
  23. 23
    Mapas (parte 2 de 2): Operaciones
    8 minutos
  24. 24
    foreach y for
    8 minutos