Sets en Kotlin
En Kotlin, un Set
es una colección de elementos únicos, lo que significa que no puede contener elementos duplicados. Los Set
en Kotlin son inmutables por defecto, lo que significa que no puedes modificar su tamaño una vez que se han creado.
val numeros = setOf(1, 2, 3, 4, 5)
En el ejemplo anterior, se crea un Set
numeros
con los valores 1, 2, 3, 4, 5
. Los Set
en Kotlin se crean utilizando la función setOf()
seguida de los valores del Set
entre paréntesis.
Acceso a elementos de un Set
Puedes acceder a elementos individuales de un Set
utilizando la función contains()
para comprobar si un elemento está presente en el Set
.
val contieneTres = numeros.contains(3)
val contieneSeis = numeros.contains(6)
En el ejemplo anterior, se comprueba si el Set
numeros
contiene los elementos 3
y 6
utilizando la función contains()
.
Iteración sobre un Set
Puedes iterar sobre los elementos de un Set
utilizando un bucle for
o la función forEach()
.
for (numero in numeros) {
println(numero)
}
numeros.forEach { numero ->
println(numero)
}
En el ejemplo anterior, se itera sobre los elementos del Set
numeros
utilizando un bucle for
y la función forEach()
.
Sets de tipos primitivos
En Kotlin, puedes utilizar Set
de tipos primitivos como IntSet
, DoubleSet
, BooleanSet
, etc. para mejorar el rendimiento de tu código.
val enteros = intSetOf(1, 2, 3, 4, 5)
val dobles = doubleSetOf(1.0, 2.0, 3.0, 4.0, 5.0)
val booleanos = booleanSetOf(true, false, true, false)
En el ejemplo anterior, se crean Set
de tipos primitivos IntSet
, DoubleSet
y BooleanSet
con valores iniciales.
Modificación de elementos de un Set
Los Set
en Kotlin son inmutables por defecto, por lo que no puedes modificar los elementos de un Set
una vez que se ha creado. Si necesitas un Set
mutable, puedes utilizar la función mutableSetOf()
.
val numeros = mutableSetOf(1, 2, 3, 4, 5)
numeros.add(6)
En el ejemplo anterior, se crea un Set
mutable numeros
con los valores 1, 2, 3, 4, 5
y se añade el valor 6
al Set
utilizando la función add()
.
Operaciones con Sets
Los Set
en Kotlin proporcionan una serie de operaciones útiles, como size
para obtener el tamaño del Set
, contains
para comprobar si un elemento está presente en el Set
, union
para unir dos Set
, intersect
para obtener la intersección de dos Set
, etc.
val numerosPares = setOf(2, 4, 6, 8, 10)
val numerosImpares = setOf(1, 3, 5, 7, 9)
val union = numeros.union(numerosPares)
val interseccion = numeros.intersect(numerosImpares)
val diferencia = numeros.subtract(numerosPares)
val diferenciaSimetrica = numeros.symmetricDifference(numerosPares)
val contieneTodos = numeros.containsAll(numerosPares)
val contieneAlguno = numeros.containsAny(numerosPares)
val esSubconjunto = numeros.isSubset(numerosPares)
val esSuperconjunto = numeros.isSuperset(numerosPares)
val esDisjunto = numeros.isDisjoint(numerosPares)
val esVacio = numeros.isEmpty()
En el ejemplo anterior, se utilizan las operaciones union()
e intersect()
para realizar operaciones comunes con los Set
numeros
, numerosPares
y numerosImpares
.
Estas operaciones sirven para lo siguiente:
union()
: Devuelve unSet
que contiene todos los elementos de los dosSet
.intersect()
: Devuelve unSet
que contiene los elementos comunes de los dosSet
.subtract()
: Devuelve unSet
que contiene los elementos del primerSet
que no están en el segundoSet
.symmetricDifference()
: Devuelve unSet
que contiene los elementos que están en uno de losSet
pero no en ambos.containsAll()
: Comprueba si unSet
contiene todos los elementos de otroSet
.containsAny()
: Comprueba si unSet
contiene al menos un elemento de otroSet
.isSubset()
: Comprueba si unSet
es un subconjunto de otroSet
.isSuperset()
: Comprueba si unSet
es un superconjunto de otroSet
.isDisjoint()
: Comprueba si dosSet
son disjuntos, es decir, si no tienen elementos en común.isEmpty()
: Comprueba si unSet
está vacío.
Los Set
en Kotlin son una forma eficiente de almacenar y manipular colecciones de elementos únicos. Puedes utilizar las operaciones proporcionadas por los Set
para realizar operaciones comunes, como unir, intersecar, restar y comparar Set
entre sí.
Si necesitas un Set
mutable, puedes utilizar la función mutableSetOf()
para crear un Set
que puedas modificar. Los Set
en Kotlin son una herramienta poderosa que te permite trabajar con colecciones de elementos únicos de forma eficiente y concisa.