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