Sobes.tech
Junior

Was ist der Unterschied zwischen List und Set in Dart?

sobes.tech KI

Antwort von AI

Hauptunterschiede:

  • Inhalt: List kann Duplikate enthalten, Set speichert nur eindeutige Elemente.
  • Reihenfolge: List bewahrt die Reihenfolge der Hinzufügung, Set garantiert keine Reihenfolge.
  • Leistung:
    • Hinzufügen/Entfernen: Im Durchschnitt ist die Operation zum Hinzufügen/Entfernen eines Elements in einem Set schneller (O(1)) dank Hashing. Für Listen können diese Operationen je nach Position langsamer sein (bis zu O(n)).
    • Suche: In einem Set ist die Suche nach einem Element nach Wert schneller (O(1) im Durchschnitt) ebenfalls durch Hashing. In einer Liste erfordert die Suche nach Wert eine lineare Suche (O(n)). Der Zugriff auf ein Element per Index in einer Liste ist schnell (O(1)).

Beispiele:

// List - erlaubt Duplikate, bewahrt die Reihenfolge
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Gibt aus: [1, 2, 2, 3, 1]
print(numbersList[0]); // Gibt aus: 1 (Zugriff per Index)

// Set - nur eindeutige Elemente, Reihenfolge nicht garantiert
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Gibt aus: {1, 2, 3} (Reihenfolge kann variieren)
// print(numbersSet[0]); // Fehler: Set unterstützt keinen Zugriff per Index
print(numbersSet.contains(2)); // Gibt aus: true (schnelle Suche)