Junior
Qual è la differenza tra List e Set in Dart?
sobes.tech AI
Risposta dell'AI
Differenze principali:
- Contenuto: List può contenere duplicati, Set memorizza solo elementi unici.
- Ordine: List mantiene l'ordine di inserimento, Set non garantisce un ordine.
- Prestazioni:
- Aggiunta/eliminazione: In media, l'operazione di aggiunta/eliminazione di un elemento in Set è più veloce (O(1)) grazie all'uso dell'hash. Per List, queste operazioni possono essere più lente (fino a O(n)) a seconda della posizione.
- Ricerca: In Set, la ricerca di un elemento per valore è più veloce (O(1) in media) sempre grazie all'hash. In List, la ricerca per valore richiede una scansione (O(n)). L'accesso per indice in List è rapido (O(1)).
Esempi:
// List - permette duplicati, mantiene l'ordine
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Output: [1, 2, 2, 3, 1]
print(numbersList[0]); // Output: 1 (accesso per indice)
// Set - solo elementi unici, ordine non garantito
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Output: {1, 2, 3} (l'ordine può variare)
// print(numbersSet[0]); // Errore: Set non supporta l'accesso per indice
print(numbersSet.contains(2)); // Output: true (ricerca rapida)