Junior
Proč používáme slovník (Dictionary), když máme také seznam (List)?
sobes.tech AI
Odpověď od AI
Slovník (Dictionary) se používá pro efektivní ukládání dat a rychlý přístup k nim pomocí unikátního klíče, zatímco seznam (List) je určen pro uspořádané ukládání prvků podle indexu.
Hlavní rozdíly:
-
Přístup k prvkům:
- List: Přístup podle indexu (celé číslo posunu). Čas přístupu O(1) v nejlepším případě. Vyhledávání prvku podle hodnoty - O(n).
- Dictionary: Přístup podle klíče (libovolný typ, pro který je definována metoda
GetHashCode()aEquals()). Čas přístupu O(1) v průměru, O(n) v nejhorším případě (při velkém počtu kolizí).
-
Struktura ukládání:
- List: Kolekce prvků uložených sekvenčně. Umožňuje duplicitní prvky.
- Dictionary: Kolekce párů "klíč-hodnota". Klíče musí být unikátní.
-
Účel:
- List: Vhodný pro ukládání seřazených posloupností, kde je důležitý pořádek nebo přístup podle pozice. Používá se, když je potřeba projít všechny prvky nebo přidávat/odstraňovat prvky na konec.
- Dictionary: Vhodný pro implementaci asociativních polí, cache, lookup tabulek, když je potřeba rychlé hledání, přidávání nebo odstraňování prvků podle jejich unikátního identifikátoru (klíče).
Příklad:
Pokud chcete uložit seznam uživatelů podle jejich ID, bude Dictionary<int, User> mnohem efektivnější pro hledání uživatele podle ID než seznam List<User>, který by bylo třeba prohledat.