Junior
Care este diferența dintre List și Set în Dart?
sobes.tech AI
Răspuns de la AI
Diferite principale:
- Conținut: List poate conține duplicate, Set stochează doar elemente unice.
- Ordine: List păstrează ordinea adăugării elementelor, Set nu garantează o ordine.
- Performanță:
- Adăugare/ștergere: În medie, operația de adăugare/ștergere a unui element în Set este mai rapidă (O(1)) datorită utilizării hashing-ului. Pentru List, aceste operații pot fi mai lente (până la O(n)) în funcție de poziție.
- Căutare: În Set, căutarea unui element după valoare este mai rapidă (O(1) în medie) datorită hashing-ului. În List, căutarea după valoare necesită parcurgerea listei (O(n)). Accesul la element după index în List este rapid (O(1)).
Exemple:
// List - permite duplicate, păstrează ordinea
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Va afișa: [1, 2, 2, 3, 1]
print(numbersList[0]); // Va afișa: 1 (acces după index)
// Set - doar elemente unice, ordinea nu este garantată
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Va afișa: {1, 2, 3} (ordinea poate varia)
// print(numbersSet[0]); // Eroare: Set nu suportă accesul după index
print(numbersSet.contains(2)); // Va afișa: true (căutare rapidă)