Sobes.tech
Junior — Middle

V čem se liší datové struktury Dictionary a HashSet z hlediska jejich použití a vnitřního uspořádání?

sobes.tech AI

Odpověď od AI

Dictionary a HashSet jsou datové struktury v C#, založené na hash tabulkách, ale s různými cíli a uspořádáním:

  • Dictionary<TKey, TValue> je kolekce párů klíč-hodnota. Umožňuje rychle najít hodnotu podle unikátního klíče. Interně používá hashování klíčů pro rychlý přístup.

  • HashSet<T> je kolekce unikátních prvků bez párů klíč-hodnota. Používá se k ukládání množiny unikátních objektů a pro rychlé vyhledávání, přidávání nebo odstraňování prvků.

Hlavní rozdíly:

  • Dictionary ukládá páry, HashSet pouze klíče (prvky).
  • Dictionary umožňuje získat hodnotu podle klíče, HashSet kontroluje, zda prvek existuje.

Příklad:

var dict = new Dictionary<int, string>();
dict[1] = "jedna";

var set = new HashSet<int>();
set.Add(1);

bool hasKey = dict.ContainsKey(1); // true
bool hasElement = set.Contains(1); // true

Proto vybírejte Dictionary, když potřebujete přiřadit klíč ke hodnotě, a HashSet, když je důležitá unikátnost a rychlé vyhledávání prvků.