Junior
Aký je rozdiel medzi List a Set v Dart?
sobes.tech AI
Odpoveď od AI
Hlavné rozdiely:
- Obsah: List môže obsahovať duplicitné prvky, Set uchováva iba unikátne prvky.
- Poradie: List zachováva poradie pridania prvkov, Set nezaručuje poradie.
- Výkon:
- Pridanie/odstránenie: Priemerná operácia pridania/odstránenia prvku v Set je rýchlejšia (O(1)) vďaka hashovaniu. Pre List môžu byť tieto operácie pomalšie (až O(n)) v závislosti od pozície.
- Vyhľadávanie: V Set je vyhľadávanie prvku podľa hodnoty rýchlejšie (O(1) priemerne) vďaka hashovaniu. V List je vyhľadávanie hodnoty lineárne (O(n)). Prístup k prvku podľa indexu v List je rýchly (O(1)).
Príklady:
// List - umožňuje duplicitné prvky, zachováva poradie
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Výstup: [1, 2, 2, 3, 1]
print(numbersList[0]); // Výstup: 1 (prístup cez index)
// Set - iba unikátne prvky, poradie nie je garantované
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Výstup: {1, 2, 3} (poradie sa môže líšiť)
// print(numbersSet[0]); // Chyba: Set nepodporuje prístup cez index
print(numbersSet.contains(2)); // Výstup: true (rýchle vyhľadávanie)