Tutorial mapas en kotlin (mapOf, mutableMapOf)

En este tutorial se explica que son los mapas en Kotlin, los cuales se crean con la función mapOf. Básicamente un mapa en Kotlin tiene una clave y un valor único. Con la clave es posible acceder al valor, son útiles cuando se quiere ser eficiente en obtener y almacenar datos.

 ¿Qué son los mapas en Kotlin? (función mapOf)

Un mapa en Kotlin es una colección de pares clave-valor donde cada clave es única. Esto significa que cada clave en el mapa está asociada con un único valor. Los mapas son útiles cuando necesitas almacenar y recuperar datos de manera eficiente utilizando una clave específica.

Ejemplo de uso de mapOf en kotlin

Supongamos que queremos almacenar información sobre estudiantes y sus calificaciones. Podemos usar un mapa para asociar el nombre de cada estudiante con su calificación correspondiente.

val calificaciones = mapOf(
    "Juan" to 90,
    "María" to 85,
    "Pedro" to 95)    

En este ejemplo, la constante calificaciones es un mapa que asocia los nombres de los estudiantes con sus calificaciones. Cada par clave-valor está separado por “to”.

Por ejemplo, “Juan” es la clave y 90 es el valor asociado a esa clave. María es la clave y 85 el valor.

Acceder a los valores en un mapa.

Acceder a los valores de un mapa, es de las ventajas de brinda este tipo de colecciones, ya que tenemos una clave con que identificar, no es necesario recorrer toda la colección en busca de un valor.

Podemos acceder a los valores en un mapa utilizando la clave correspondiente como  se muestra a continuación:

    println(calificaciones["Juan"]) // Imprime: 90

    println(calificaciones["María"]) // Imprime: 85   

Imprimir el mapa con el ciclo for.

El ciclo for se puede utilizar para imprimir todos los valores de un mapa. También se puede hacer con forEach.

En el siguiente ejemplo imprimimos todos los valores del mapa que creamos anteriormente utilizando el ciclo for.

    for ((nombre, calificacion) in calificaciones) {
        println("$nombre tiene una calificación de $calificacion")
    }

El código anterior imprimirá lo siguiente:

Juan tiene una calificación de 90

María tiene una calificación de 85

Pedro tiene una calificación de 95

Verificar si una clave existe en el mapa.

Antes de realizar cualquier acción, es posible verificar si una clave existe dentro del mapa. Para esto se utiliza el operador “in”.

La sintaxis es simple, solo se escribe la palabra clave entre comillas seguido por el operador in, luego la variable tipo mapa.

En el siguiente ejemplo se verifica si “Juan” existe en el mapa de calificaciones.

    if ("Juan" in calificaciones) {
        println("Juan tiene una calificación de ${calificaciones["Juan"]}")
    } else {
        println("No se encontró la calificación de Juan")
    }

Modificar un valor en un mapa (mutableMapOf)

Para poder modificar valores de un mapa, es necesario que el mapa sea de tipo mutable. Es decir, que se pueda editar.

En este caso la variable se declara como mutableMapOf() y no solo como mapOf().

En el siguiente ejemplo se modifica la calificación de Juan. Es decir, se modifica el valor de la cave “Juan”.

    calificaciones["Juan"] = 88
    println("La nueva calificación de Juan es ${calificaciones["Juan"]}")

Si usamos mapOf() tendremos el siguiente mensaje de error:

“Unresolved referense. None of the following candidates is applicable because of receiver type mismatch: public inline operatos fun kotlin.text.StringBilder…”

Como se muestra a continuación:

Pero usando mutableMapOf() ya obtenemos el resultado esperado:

La nueva calificación de Juan es 87

Algunas propiedades interesantes de un mapa en Kotlin.

A continuación mostramos algunas de las propiedades que podemos obtener de un mapa en Kotlin.

Size. Muestra un valor entero que indica la cantidad de elementos en el mapa.

Values. Genera una Collection mostrando únicamente con los valores del mapa.

Keys. Se crea un set donde únicamente aparecen las claves del mapa.

isEmpty(). Si el mapa está vacío regresará verdadero de lo contrario mostrará falso.

Para más tutoriales de Kotlin ve a este enlace.

Algunos temas que te pueden interesar: