Sobes.tech
Junior

Was ist der Unterschied zwischen Sammlungen und Arrays?

sobes.tech KI

Antwort von AI

In Swift gibt es keinen separaten "Sammlung"-Typ. Es gibt das Protokoll Collection, dem verschiedene Typen entsprechen, einschließlich Array, Set und Dictionary.

Die wichtigsten Unterschiede zwischen Array und anderen Typen, die das Collection-Protokoll erfüllen:

  1. Elementreihenfolge:

    • Array: Geordnete Sammlung. Elemente werden in einer bestimmten Reihenfolge gespeichert und sind über den Index zugänglich.
    • Set: Ungeordnete Sammlung von eindeutigen Elementen.
    • Dictionary: Ungeordnete Sammlung von Schlüssel-Wert-Paaren.
  2. Zugriff nach Index:

    • Array: Ermöglicht Zugriff auf Elemente über einen ganzzahligen Index.
    • Set: Unterstützt keinen direkten Zugriff nach Index.
    • Dictionary: Der Zugriff auf Werte erfolgt über den Schlüssel.
  3. Einzigartigkeit der Elemente:

    • Array: Kann doppelte Elemente enthalten.
    • Set: Enthält nur eindeutige Elemente.
    • Dictionary: Schlüssel müssen eindeutig sein, Werte können sich wiederholen.
  4. Leistung:

    • Der Zugriff nach Index in Array ist in der Regel schneller (O(1) im Durchschnitt).
    • Die Suche nach einem Element in Set oder nach einem Schlüssel in Dictionary ist in der Regel schneller (O(1) im Durchschnitt) im Vergleich zur Suche in Array (O(n)).

Beispiel für die Verwendung von Array:

// Erstellen eines Arrays von Strings
var names: [String] = ["Alice", "Bob", "Charlie"]

// Zugriff auf ein Element nach Index
let firstPerson = names[0] // "Alice"

// Element hinzufügen
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Beispiel für die Verwendung von Set:

// Erstellen eines Sets von Ganzzahlen
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - Duplikat entfernt

// Überprüfung, ob ein Element enthalten ist
let containsThree = uniqueNumbers.contains(3) // true

Beispiel für die Verwendung von Dictionary:

// Erstellen eines Dictionaries "Name - Alter"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Zugriff auf einen Wert über den Schlüssel
let aliceAge = ages["Alice"] // 30

// Hinzufügen eines neuen Paars
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]