Sobes.tech
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)