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.