Sobes.tech
Junior

Prečo používame slovník (Dictionary), ak máme aj zoznam (List)?

sobes.tech AI

Odpoveď od AI

Slovník (Dictionary) sa používa na efektívne ukladanie údajov a rýchly prístup k nim pomocou jedinečného kľúča, zatiaľ čo zoznam (List) je určený na usporiadané ukladanie prvkov podľa indexu.

Hlavné rozdiely:

  1. Prístup k prvkom:

    • List: Prístup podľa indexu (celé číslo posunu). Čas prístupu O(1) v najlepšom prípade. Vyhľadávanie prvku podľa hodnoty - O(n).
    • Dictionary: Prístup podľa kľúča (akýkoľvek typ, pre ktorý je definovaná metóda GetHashCode() a Equals()). Priemerný čas prístupu O(1), v najhoršom prípade O(n) (keď je veľa kolízií).
  2. Štruktúra ukladania:

    • List: Kolekcia prvkov uložených sekvenčne. Umožňuje duplikáty.
    • Dictionary: Kolekcia párov "kľúč-hodnota". Kľúče musia byť jedinečné.
  3. Účel:

    • List: Vhodný na ukladanie zoradených sekvencií, kde je dôležitý poriadok alebo prístup podľa pozície. Používa sa, keď je potrebné prejsť všetky prvky alebo pridávať/odstraňovať prvky na konci.
    • Dictionary: Vhodný na implementáciu asociatívnych polí, cache, lookup tabuliek, keď je potrebné rýchle vyhľadávanie, pridanie alebo odstránenie prvkov podľa ich jedinečného identifikátora (kľúča).

Príklad: Ak chcete uložiť zoznam používateľov podľa ich ID, slovník Dictionary<int, User> bude oveľa efektívnejší na vyhľadávanie používateľa podľa ID než zoznam List<User>, ktorý by bolo potrebné prejsť.