Junior
Qual é a diferença entre coleções e arrays?
sobes.tech IA
Resposta da IA
No Swift, não existe um tipo separado chamado "coleção". Existe o protocolo Collection, ao qual correspondem vários tipos, incluindo Array, Set e Dictionary.
As principais diferenças entre Array e outros tipos que conformam ao protocolo Collection:
-
Ordem dos elementos:
Array: Coleção ordenada. Os elementos são armazenados numa ordem definida e acessíveis por índice.Set: Coleção não ordenada de elementos únicos.Dictionary: Coleção não ordenada de pares "chave-valor".
-
Acesso por índice:
Array: Permite acesso aos elementos por um índice inteiro.Set: Não suporta acesso direto por índice.Dictionary: O acesso aos valores é feito por chave.
-
Unicidade dos elementos:
Array: Pode conter elementos duplicados.Set: Contém apenas elementos únicos.Dictionary: As chaves devem ser únicas, os valores podem repetir-se.
-
Desempenho:
- O acesso por índice em
Arrayé geralmente mais rápido (O(1) em média). - A procura de um elemento em
Setou por chave emDictionaryé geralmente mais rápida (O(1) em média) em comparação com a procura emArray(O(n)).
- O acesso por índice em
Exemplo de uso de Array:
// Criação de um array de strings
var names: [String] = ["Alice", "Bob", "Charlie"]
// Acesso a um elemento por índice
let firstPerson = names[0] // "Alice"
// Adicionar elemento
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Exemplo de uso de Set:
// Criação de um conjunto de números inteiros
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplicado removido
// Verificação de presença de elemento
let containsThree = uniqueNumbers.contains(3) // true
Exemplo de uso de Dictionary:
// Criação de um dicionário "nome - idade"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Acesso a valor por chave
let aliceAge = ages["Alice"] // 30
// Adicionar nova par
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]