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

  1. 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".
  2. 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.
  3. 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.
  4. Desempenho:

    • O acesso por índice em Array é geralmente mais rápido (O(1) em média).
    • A procura de um elemento em Set ou por chave em Dictionary é geralmente mais rápida (O(1) em média) em comparação com a procura em Array (O(n)).

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]