Junior
Ce este HashSet în C#?
sobes.tech AI
Răspuns de la AI
HashSet<T> este o colecție nesortată de elemente unice. Se bazează pe o tabelă hash și oferă operații rapide de adăugare, ștergere și verificare a existenței elementelor (în medie, în timp constant, O(1)).
Caracteristici principale ale HashSet<T>:
- Unicitate: Nu poate conține duplicate. Încercarea de a adăuga un element existent va fi ignorată.
- Nesortat: Elementele nu sunt stocate într-o anumită ordine. Ordinea de iterare poate diferi de ordinea de adăugare.
- Performanță: Datorită utilizării hashing-ului, operațiile de căutare, adăugare și ștergere au, în medie, complexitatea O(1). În cel mai rău caz (cu o funcție hash slabă sau coliziuni), performanța poate scădea.
- Operații multiple: Suportă diverse operații precum uniune (
UnionWith), intersecție (IntersectWith), diferență (ExceptWith), verificare de submulțime sau supermulțime (IsSubsetOf,IsSupersetOf).
Exemplu de utilizare:
// Creare HashSet
HashSet<string> fruits = new HashSet<string>();
// Adăugare elemente
fruits.Add("măr");
fruits.Add("banană");
fruits.Add("portocală");
fruits.Add("măr"); // Va fi ignorat, deoarece "măr" există deja
// Verificare existență element
bool hasBanană = fruits.Contains("banană"); // true
bool hasStrugure = fruits.Contains("strugure"); // false
// Ștergere element
fruits.Remove("portocală");
// Parcurgere elemente
foreach (string fruit in fruits)
{
// Afișare: măr, banană (ordinea poate varia)
Console.WriteLine(fruit);
}
// Dimensiunea colecției
int count = fruits.Count; // 2
HashSet<T> implementează interfețele ICollection<T>, IEnumerable<T> și ISet<T>, ceea ce permite utilizarea sa în diverse scenarii de colecții și efectuarea de operații specifice de mulțimi.