Sobes.tech
Junior — Middle

Que métodos de implementação da interface Map conheces em Kotlin e em que se diferenciam?

sobes.tech IA

Resposta da IA

No Kotlin, a interface Map é implementada de várias formas, que diferem em mutabilidade e implementação interna:

  1. Map (somente leitura) — interface para mapas imutáveis. Suas implementações não permitem modificar o conteúdo. Exemplo de criação:
val map: Map<String, Int> = mapOf("one" to 1, "two" to 2)
  1. MutableMap — estende Map e permite modificar o conteúdo (adicionar, remover elementos). Exemplo:
val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1)
mutableMap["two"] = 2
  1. HashMap — classe que implementa MutableMap, baseada em uma tabela hash. Proporciona acesso rápido por chave.

  2. LinkedHashMap — herda de HashMap, mantém a ordem de inserção dos elementos.

  3. SortedMap / TreeMap (via Java) — mapeamento onde as chaves estão ordenadas.

Diferenças:

  • Map somente leitura não permite modificar os dados.
  • MutableMap permite modificar.
  • HashMap é mais rápido, mas não garante a ordem.
  • LinkedHashMap mantém a ordem de inserção.

Em Kotlin, as funções padrão mapOf e mutableMapOf retornam respectivamente Map somente leitura e MutableMap, geralmente implementados via LinkedHashMap.