O Set é uma dos principais tipos de collections do Kotlin, e ele se caracteriza por ser uma coleção de elementos desordenados e que não se repetem.
Então sempre que você pensar em um Set, lembre dessas duas características: OS ELEMENTOS NÃO SE REPETEM & OS ELEMENTOS SÃO DESORDENADOS
No código de exemplo abaixo, você precisa focar em algumas características importantes:
- Independente da quantidade de elementos repetidos em um Set, ele sempre irá processar apenas os elementos que não se repetem, você pode constatar isso pela quantidade de elementos computada ao chamar a função size e quando damos um println em sextaDeFrutasUm e sextaDeFrutasDois.
- Dois sets contendo a mesma quantidade de elementos não repetidos, serão sempre iguais, mesmo que exista em um desses sets n elementos repetidos. Perceba que quando comparamos as duas sextas de frutas no exemplo, ele retorna um true, mesmo uma das sextas contendo diversos elementos repetidos.
fun main() {
val sextaDeFrutasUm = setOf<String>("Maçã", "Goiaba", "abacaxi", "Açai", "Goiaba", "abacaxi", "Açai", "Maçã")
val sextaDeFrutasDois = setOf<String>("Maçã", "Goiaba", "abacaxi","Açai")
println("Número de elementos da Sexta Um: ${sextaDeFrutasUm.size}")
println("Número de elementos da Sexta Dois: ${sextaDeFrutasUm.size}")
println("Sextas iguais?: ${sextaDeFrutasUm == sextaDeFrutasDois}")
println("Sexta de Frutas Um: $sextaDeFrutasUm")
println("Sexta de Frutas Dois: $sextaDeFrutasDois")
}
Número de elementos da Sexta Um: 4
Número de elementos da Sexta Dois: 4
Sextas iguais?: true
Sexta de Frutas Um: [Maçã, Goiaba, abacaxi, Açai]
Sexta de Frutas Dois: [Maçã, Goiaba, abacaxi, Açai]
O Set acompanha algumas propriedades e funções que podem ser usadas de acordo com suas especificidades. Essas funções e propriedades estão disponíveis na documentação oficial, no entanto eu trago também MultableSet
Basicamente, tem as mesmas características do Set mais a multabilidade, que trás consigo mais algumas funções.