Uso de Maps en Kotlin: Clave-Valor y Tipos Mutable e Inmutable
Clase 24 de 38 • Curso de Kotlin desde Cero
Contenido del curso
Configuración del entorno
Hola mundo Kotlin
- 8

Estructura y Funcionalidad de Archivos en un Proyecto Kotlin
03:20 min - 9

Variables en Kotlin: Lectura, Escritura y Constantes
06:30 min - 10

Tipos de Variables y Operaciones en Kotlin
12:31 min - 11

Tipos de Datos y Objetos en Kotlin: Ventajas y Funcionalidades
03:40 min - 12
Operadores y Funciones en Kotlin: Uso y Extensión
01:27 min - 13

Programación Funcional en Kotlin: Paradigmas y Variables Inmutables
02:54 min - 14

Estructuras de Control: Uso de IF en Kotlin
11:55 min - 15

Estructura de Control "When" en Kotlin: Uso y Ejemplos Prácticos
14:20 min
Conceptos básicos de Kotlin
- 16

Bucle while y do-while en Kotlin: Condicionales y Ejecución
06:23 min - 17

Ciclo For y Funciones de Extensión en Kotlin
13:10 min - 18

Null Safety en Kotlin: Evita Errores por Referencias Nulas
04:53 min - 19

Gestión de Tipos Nulables en Kotlin y Buenas Prácticas
06:17 min - 20

Manejo de Excepciones en Kotlin: Try-Catch y Lanzamiento de Errores
10:29 min - 21

Uso del Operador Elvis en Kotlin para Nulables
02:37 min
Collections en Kotlin
Libera el potencial de las funciones
- 26

Creación de funciones propias en Kotlin
03:30 min - 27

Creación de Funciones en Kotlin: Uppercase y Lowercase Aleatorios
11:23 min - 28

Parámetros Nombrados y por Defecto en Funciones de Programación
05:06 min - 29

Creación y Uso de Lambdas en Kotlin
08:50 min - 30

Funciones de Alto Orden y Lambdas en Kotlin
07:33 min
Scope functions
- 31

Uso de la función let en Kotlin para variables nulas
03:28 min - 32

Uso de la función "with" en Kotlin para manejar propiedades
02:10 min - 33

Uso de la Función Run para Operaciones en Listas en Kotlin
02:54 min - 34

Uso de la función apply para manejar tipos anulables en Kotlin
04:28 min - 35

Uso de la Función Also en Kotlin para Encadenamiento de Operaciones
02:18 min
Proyecto: Bola 8 mágica
¿Qué son los Maps en Kotlin?
Los maps en Kotlin forman parte de la familia de las colecciones y se utilizan para almacenar pares de elementos, donde cada clave tiene un valor asociado. Esta estructura de datos se conoce como clave-valor y es fundamental para organizar y manipular datos de manera eficiente en una aplicación.
En esta clase no confundimos los maps con la función map que vimos anteriormente. Aquí, nos centramos en los maps como colecciones de datos.
¿Cómo crear y usar Maps en Kotlin?
Para empezar a utilizar maps, se puede hacer uso de la función mapOf. Esto permite crear un map inmutable, lo que significa que una vez creado, sus elementos no pueden ser añadidos o modificados.
Creación de Maps con Superhéroes
Consideremos el siguiente ejemplo, donde se registran diferentes superhéroes con sus edades utilizando mapOf:
val edadSuperheroes = mapOf(
"Iron Man" to 35,
"Spiderman" to 23,
"Capitán América" to 99
)
Este código crea un map donde cada superhéroe es una clave, y su edad es el valor asociado. Tenga en cuenta que mapOf crea un mapa inmutable.
Maps mutables y uso de mutableMapOf
A diferencia de los maps inmutables, los maps mutables (mutableMapOf) permiten modificar sus elementos después de la creación. Esto se logra utilizando mutableMapOf.
val edadSuperheroesMutable = mutableMapOf(
"Iron Man" to 35,
"Spiderman" to 23,
"Capitán América" to 99
)
En apariencia, no existe diferencia visual con un map inmutable hasta que se comienza a modificar su contenido.
¿Cómo modificar el contenido de un Map mutable?
Agregar elementos
Para agregar un nuevo superhéroe a un map mutable, se emplea la función put:
edadSuperheroesMutable.put("Wolverine", 45)
También se puede utilizar la notación de corchetes:
edadSuperheroesMutable["Storm"] = 30
Ambos métodos permiten asignar un valor a una nueva clave dentro del map mutable.
Eliminar elementos
La eliminación de un elemento se realiza con la función remove, proporcionando la clave del elemento que se desea eliminar:
edadSuperheroesMutable.remove("Wolverine")
Este método es similar al usado en listas, pero aquí se usa la clave en lugar de un índice.
¿Cómo acceder a los valores de un Map?
Para obtener un valor específico de un map, se utiliza la clave correspondiente:
val edadIronMan = edadSuperheroesMutable["Iron Man"]
println(edadIronMan) // Imprime: 35
Es una buena práctica definir la clave como una variable para evitar errores de escritura (typos).
¿Cómo obtener todas las claves o valores de un Map?
Es posible listar todas las claves o todos los valores de un map empleando las propiedades keys y values, respectivamente.
println(edadSuperheroesMutable.keys) // Imprime: [Iron Man, Spiderman, Capitán América, Storm]
println(edadSuperheroesMutable.values) // Imprime: [35, 23, 99, 30]
Esto resulta útil cuando se trabaja con datos de otras fuentes y se desconoce el contenido completo del mapa.
Recomendaciones y prácticas de uso
-
Inmutabilidad: Siempre que sea posible, trabaje con colecciones inmutables. Esto asegura la integridad y consistencia de los datos.
-
Funciones predefinidas: Kotlin ofrece multitud de funciones predefinidas para manipular colecciones. Considere utilizarlas antes de desarrollar sus propias soluciones.
-
Manejo de errores: Al acceder a valores en un map, considere qué debe ocurrir si una clave no existe. Utilice el operador
?:para manejar valores nulos de manera elegante y prevenir errores.
Los maps son una poderosa herramienta en Kotlin para manejar y organizar datos. Con estos conocimientos, se está preparado para realizar operaciones complejas y optimizadas en sus aplicaciones. ¡Sigue explorando para descubrir todo lo que Kotlin puede ofrecerte!