SetOf & MutableSetOf
Observação: O arquivo utilizado neste conteúdo é o 4-setOf.kt.
Neste conteúdo você vai aprender um pouco mais sobre a criação de listas com o SetOf e o MutableSetOf.
SetOf, MutableSetOf
Set é um outro conjunto de elementos de listas em Kotlin, onde possui algumas particularidades com relação aos seus outros irmãos (ArrayOf, ListOf...):
1) O Set é um conjunto de elementos que não segue uma sequência ordenada.
2) O set não permite valores duplicados.
No caso do Set, nós temos o SetOf que representa uma lista imutável de elementos, e temos também o MutableSetOf que representa uma lista mutável de elementos.
Vejamos abaixo, as declarações das listas do tipo SetOf e MutableSetOf:
val set1 = setOf<Int>()//Criamos uma lista imutável de elementos do tipo Int vazia.
val set2 = mutableSetOf<String>()//Criamos uma lista mutável de elementos do tipo String vazia.
val set3: Set<Int> = setOf<Int>()//Mesma lógica acima, só que com declaração de tipos em uma lista imútavel.
val set4: MutableSet<String> = mutableSetOf<String>()//Mesma lógica acima, só que fazendo uso da lista mutável.
Veja abaixo como instanciar uma lista de Sets com valores pré-definidos:
val set5 = setOf<Any>(true, null, false, 24, 36, 16, 12, "Nome")//Exemplo de lista imutável que recebe qualquer tipo de valor.
val set6 = mutableSetOf<Any>(14, 26, 8f, 9.87, "Lun")//Exemplo de lista mutável que recebe qualquer tipo de valor.
Observe abaixo o que acontece quando tentamos criar um elemento que já existe dentro da lista:
val set7 = mutableSetOf<String>("William", "Roll", "Roll")//Você até pode adicionar valores repetido, mas...
println(set7)//No final das contas ele não é adicionado rs
Como visto no código acima, o elemento repetido "Roll" não é adicionado a lista pela segunda vez.
Como adicionar elementos dentro de um Set?
set7.add("Micilini")
Como remover elementos dentro de um Set?
set7.remove("Roll")
set7.clear()//Limpa toda a lista
É importante ressaltar que o Set não é uma lista ordenada, logo não possuí índices, nesse caso não conseguimos remover um elemento pelo seu índice como havíamos fazendo em listas anteriores.
E muito menos selecionar um elemento por índice.
Como verificar se o Set contém um determinado elemento?
println(set7.contains("Roll"))
Como calcular o tamanho dos elementos em um Set?
println(set7.size)//Retorna a quantidade de elementos
Como interagir com todos os elementos em um Set?
for(item in set7){
println(item)
}
Conclusão
Neste conteúdo você aprendeu a fazer o uso da lista SetOf e MutableSetOf.
Até o próximo conteúdo 🤖