Sobes.tech
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.