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í)