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

  1. 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() a Equals()). Čas přístupu O(1) v průměru, O(n) v nejhorším případě (při velkém počtu kolizí).
  2. 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í.
  3. Úč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.