Sets en Kotlin: Uso, Eliminación y Obtención de Elementos

Clase 24 de 37Curso de Kotlin desde Cero

Resumen

¿Qué son los sets en Kotlin y cómo funcionan?

Los sets en Kotlin son una colección que se caracteriza por no permitir elementos duplicados. Esto significa que si se intenta añadir el mismo elemento más de una vez, únicamente se conserva el primer elemento añadido. Esto es útil cuando se busca eliminar duplicados de una lista. Vamos a explorar cómo funcionan los sets en Kotlin, tanto en su forma mutable como inmutable, y cómo se comparan con otras colecciones como listas y maps.

¿Cómo se crea un set inmutable?

Para crear un set inmutable en Kotlin, usamos setOf(). A continuación, te muestro un ejemplo con vocales que se repiten:

val vocales = setOf("A", "E", "I", "O", "U", "A", "E", "I", "O", "U")
println(vocales)

Cuando ejecutamos este código, el set no incluye elementos repetidos, por lo que solo se imprimen las primeras cinco vocales: A, E, I, O, U.

¿Cómo se crea un set mutable y cómo añadir elementos?

Si deseas modificar un set después de crearlo, se debe usar un set mutable. Aquí te muestro cómo se hace:

val numerosFavoritos = mutableSetOf(1, 2, 3, 4)
numerosFavoritos.add(5)
println(numerosFavoritos)  // Imprime: [1, 2, 3, 4, 5]

Si intentas agregar 5 nuevamente, no se añadirá porque ya existe en el set. Así se asegura que no haya duplicados:

numerosFavoritos.add(5)
println(numerosFavoritos)  // Imprime: [1, 2, 3, 4, 5]

¿Cómo eliminar elementos de un set?

Para eliminar un elemento de un set, no utilizamos índices sino el valor del elemento que queremos remover. Aquí tienes un ejemplo:

numerosFavoritos.remove(5)
println(numerosFavoritos)  // Imprime: [1, 2, 3, 4]

Dado que los sets no están ordenados como las listas, no tienen un índice definido. Esto hace que la eliminación de elementos sea por valor directamente.

¿Cómo acceder a elementos en un set?

Aunque los sets no tienen un orden específico, puedes acceder a elementos que cumplan con ciertas condiciones. Usa la función firstOrNull para obtener el primer elemento que cumpla una condición, sin causar un error si no hay elementos que cumplan dicha condición:

val numMayorQueDos = numerosFavoritos.firstOrNull { it > 2 }
println(numMayorQueDos)  // Imprime: 3

Este método devuelve el primer elemento que es mayor que dos. Además, el uso de firstOrNull nos protege de errores en caso de que no haya elementos que cumplan la condición.

Siempre que trabajes con sets en Kotlin, recuerda que puedes combinar el uso de sets mutables e inmutables según lo requiera tu lógica de programación, aprovechando las propiedades de cada tipo para gestionar colecciones de datos únicos eficientemente. ¡Sigue aprendiendo y mantente motivado! Kotlin ofrece muchas más funcionalidades por descubrir.