Sobes.tech
Junior

Wat is het verschil tussen collecties en arrays?

sobes.tech AI

Antwoord van AI

In Swift bestaat er geen apart "collectie"-type. Er is het protocol Collection, waaraan verschillende typen voldoen, waaronder Array, Set en Dictionary.

De belangrijkste verschillen tussen Array en andere typen die voldoen aan het Collection-protocol:

  1. Volgorde van elementen:

    • Array: Geordende collectie. Elementen worden in een bepaalde volgorde opgeslagen en zijn via index toegankelijk.
    • Set: Ongestructureerde collectie van unieke elementen.
    • Dictionary: Ongestructureerde collectie van "sleutel-waarde"-paren.
  2. Toegang via index:

    • Array: Ondersteunt toegang tot elementen via een geheel getal index.
    • Set: Ondersteunt geen directe toegang via index.
    • Dictionary: Toegang tot waarden gebeurt via de sleutel.
  3. Uniciteit van elementen:

    • Array: Kan dubbele elementen bevatten.
    • Set: Bevat alleen unieke elementen.
    • Dictionary: Sleutels moeten uniek zijn, waarden kunnen herhaald worden.
  4. Prestaties:

    • Toegang via index in Array is meestal sneller (O(1) gemiddeld).
    • Zoeken naar een element in Set of via de sleutel in Dictionary is meestal sneller (O(1) gemiddeld) in vergelijking met zoeken in Array (O(n)).

Voorbeeld van gebruik van Array:

// Aanmaken van een array van strings
var names: [String] = ["Alice", "Bob", "Charlie"]

// Toegang tot een element via index
let firstPerson = names[0] // "Alice"

// Element toevoegen
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Voorbeeld van gebruik van Set:

// Aanmaken van een set van gehele getallen
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplicaat verwijderd

// Controleren of een element aanwezig is
let containsThree = uniqueNumbers.contains(3) // true

Voorbeeld van gebruik van Dictionary:

// Aanmaken van een woordenboek "naam - leeftijd"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Toegang tot een waarde via de sleutel
let aliceAge = ages["Alice"] // 30

// Toevoegen van een nieuw paar
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]