Sobes.tech
Junior — Middle

V čom sa líšia dátové štruktúry Dictionary a HashSet z hľadiska ich použitia a vnútornej štruktúry?

sobes.tech AI

Odpoveď od AI

Dictionary a HashSet sú dátové štruktúry v C#, založené na hash tabuľkách, ale s rôznymi účelmi a usporiadaním:

  • Dictionary<TKey, TValue> je kolekcia párov kľúč-hodnota. Umožňuje rýchle nájdenie hodnoty podľa unikátneho kľúča. Interné používa hashovanie kľúčov pre rýchly prístup.

  • HashSet<T> je kolekcia unikátnych prvkov bez párov kľúč-hodnota. Používa sa na uloženie množiny unikátnych objektov a pre rýchle vyhľadávanie, pridávanie alebo odstraňovanie prvkov.

Hlavné rozdiely:

  • Dictionary uchováva páry, HashSet len kľúče (prvky).
  • Dictionary umožňuje získať hodnotu podľa kľúča, HashSet kontroluje, či prvok existuje.

Príklad:

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

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

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

Preto vyberajte Dictionary, keď potrebujete priradiť kľúč ku hodnoty, a HashSet, keď je dôležitá jedinečnosť a rýchle vyhľadávanie prvkov.