Sobes.tech
Junior

Podes explicar as diferenças entre List, Set e Map, bem como em que situações devem ser usados?

sobes.tech IA

Resposta da IA

List - uma coleção ordenada que permite duplicados. Os elementos estão acessíveis por índice.

Set - uma coleção não ordenada de elementos únicos. Não permite duplicados.

Map - uma coleção de pares "chave-valor", onde cada chave é única. Os elementos estão acessíveis por chave.

Tabela de comparação:

Característica List Set Map
Ordenação Sim Não Na ordem de inserção (nem sempre)
Duplicados Permite Não permite As chaves são únicas, os valores podem duplicar-se
Acesso Por índice Por iteração Por chave
  • Uso:
    • List: Quando a ordem dos elementos é importante e podem existir duplicados (por exemplo, lista de compras, histórico de transações).
    • Set: Quando é necessária uma coleção de elementos únicos e a ordem não importa (por exemplo, conjunto de utilizadores únicos, lista de tags únicas).
    • Map: Quando se deseja armazenar dados em pares "chave-valor" e aceder rapidamente a um valor por chave (por exemplo, dicionário, configurações da aplicação).

Exemplo:

// List
val shoppingList = listOf("maçã", "banana", "maçã")
println(shoppingList[0]) // maçã

// Set
val uniqueFruits = setOf("maçã", "banana", "maçã")
println(uniqueFruits.size) // 2 (maçã aparece apenas uma vez)

// Map
val userAges = mapOf("Alice" to 30, "Bob" to 25)
println(userAges["Alice"]) // 30