Junior — Middle
Quais as formas de implementar a interface Set disponíveis no Kotlin e em que elas diferem?
sobes.tech IA
Resposta da IA
No Kotlin, a interface Set é implementada de várias formas, que diferem em mutabilidade e na implementação interna:
- Set — é uma interface para um conjunto imutável (somente leitura). Fornece operações de leitura, mas não de modificação.
- MutableSet — estende Set e adiciona métodos para modificar o conjunto (adicionar, remover elementos).
Implementações:
- HashSet — baseado numa tabela hash, garante acesso rápido e operações de adição/remoção. A ordem dos elementos não é garantida.
- LinkedHashSet — herda de HashSet, mantém a ordem de inserção dos elementos.
- SortedSet / TreeSet (via Java) — conjunto cujos elementos estão ordenados por ordem natural ou por um comparador.
Exemplo:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // permitido
// readOnlySet.add(4) // erro de compilação
Assim, a escolha da implementação depende dos requisitos de mutabilidade e da ordem dos elementos.