marzo 28, 2024

BitCuco

¡Hola Mundo!

Creación de HashMap en Kotlin (Android)

En ésta ocasión les escribiré sobre la creación de HashMap en Kotlin (Android). Un HashMap es una estructura de datos utilizada en varios lenguajes de programación (incluyendo Kotlin) para almacenar un listado (array) de claves y sus respectivos valores. La forma en que un hashmap es utlizado es muy sencillo, todo se puede manejar a través de un acceso directo al valor (value) accediendo desde su clave (key), tanto en operaciones de lectura, asignación o modificación del valor.

Cómo crear un HashMap

La declaración de HashMap en Kotlin es muy sencilla y se puede declarar como una variable de clase o dentro de una función de la siguiente forma:

var miHashMap: HashMap = HashMap()

El tipo_key es el tipo que van a tener las claves del HashMap, para acceder a su respectivo valor, y el tipo_value es el tipo de valor. Por ejemplo si queremos hacer un HashMap para un sistema de idUsuario y nombreUsuario, el HashMap sería declarado de la siguiente forma:

var usuariosLista: HashMap = HashMap()

Operaciones con HashMap

El uso de HashMap es totalmente dinámico, una vez que ha sido declarado, es decir, puede agregar elementos, cambiar valores, eliminar elementos, etc. accediendo directamente al elemento a través de su clave. Veamos algunos ejemplos:

Agregar o modificar un nuevo elemento

Es suficiente con la asignación del valor a la clave deseada (al igual que una modificación de valor). Por ejemplo si queremos asignar el nombre de Francisco al usuario 10, lo hacemos de la siguiente forma:

usuariosLista[10] = "Francisco"

Comparar dos elementos

Podemos comparar si dos elementos son iguales directamente usando compareTo

if(usuariosLista[10].compareTo("Juan"))
{
    Timber.d("Usuario es Juan")
}
else
{
    Timber.d("Usuario no es Juan")
}

En donde por la asignación del párrafo anterior, el resultado sería false.

Lectura de un elemento

Es suficiente con obtener el valor de la key deseada.

var usuarioActual = usuariosLista[10]

Verificar si existe un elemento

Validamos por medio de containsKey si existe la clave dentro del array

if(usuariosLista.containsKey(10))
{
    Timber.d("Usuario 10 existe")
}
else
{
    Timber.d("Usuario 10 no existe")
}

Eliminar un elemento del HashMap

Utilizamos remove, indicando el key del elemento que deseemos eliminar.

usuariosLista.remove(10)

Vaciar un HashMap en Kotlin

Si deseamos eliminar todos los elementos del HashMap, es decir vaciarlo, podemos hacemos utilizando la siguiente línea de código:

usuariosLista.clear()

Obtener los keys que contienen un valor específico

Para obtener un array con los keys que contienen un valor en particular, utilizamos filterValues. En éste caso obtenemos un array, el cuál podemos acceder directamente mapeando los resultados de la siguiente forma:

val keys = usuariosLista.filterValues { it == "your_value" }.keys
for (i in keys)
{
    Timber.d("Key encontrado: $i")
}