Sobes.tech
Junior

Jaký je rozdíl mezi List a Set v Dart?

sobes.tech AI

Odpověď od AI

Hlavní rozdíly:

  • Obsah: List může obsahovat duplicitní prvky, Set ukládá pouze unikátní prvky.
  • Pořadí: List zachovává pořadí přidání prvků, Set nezaručuje žádné pořadí.
  • Výkon:
    • Přidání/odstranění: Průměrně je operace přidání/odstranění prvku v Set rychlejší (O(1)) díky použití hashování. U List může být tato operace pomalejší (až O(n)) v závislosti na pozici.
    • Vyhledávání: V Set je hledání prvku podle hodnoty rychlejší (O(1) průměrně) díky hashování. V List je hledání hodnoty lineární (O(n)). Přístup k prvku podle indexu v List je rychlý (O(1)).

Příklady:

// List - umožňuje duplicitní prvky, zachovává pořadí
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Výstup: [1, 2, 2, 3, 1]
print(numbersList[0]); // Výstup: 1 (přístup přes index)

// Set - pouze unikátní prvky, pořadí není garantováno
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Výstup: {1, 2, 3} (pořadí se může lišit)
// print(numbersSet[0]); // Chyba: Set nepodporuje přístup přes index
print(numbersSet.contains(2)); // Výstup: true (rychlé hledání)