Junior
Wann sollte man Set anstelle von Array verwenden?
sobes.tech KI
Antwort von AI
Set sollte in den folgenden Fällen verwendet werden:
- Nur die Speicherung einzigartiger Elemente ist erforderlich.
Setstellt automatisch sicher, dass jedes Element höchstens einmal in der Sammlung vorhanden ist. - Hohe Leistung bei der Überprüfung, ob ein Element vorhanden ist. Die Operation
contains(_:)inSethat im Durchschnitt eine amortisierte Komplexität von O(1), während sie inArrayO(n) ist. - Die Reihenfolge der Elemente ist egal. Im Gegensatz zu
ArraygarantiertSetkeine bestimmte Reihenfolge bei der Enumeration seiner Elemente. - Häufige Operationen zum Hinzufügen, Entfernen und Überprüfen der Existenz sind erforderlich. Diese Operationen sind in
Setin der Regel effizienter als inArraybei großen Sammlungen, wenn die Reihenfolge keine Rolle spielt und Einzigartigkeit erforderlich ist.
Beispielcode, der den Unterschied bei der Suche zeigt:
// Array
let array = [1, 2, 3, 4, 5]
let element = 5
// Suche in Array - lineare Suche (O(n))
let isPresentInArray = array.contains(element)
// Set
let set: Set = [1, 2, 3, 4, 5]
// Suche in Set - Hashing (im Durchschnitt O(1))
let isPresentInSet = set.contains(element)