Sobes.tech
Junior

C#-də HashSet nədir?

sobes.tech Süni İntellekt

AI-dan cavab

HashSet<T> tərtib olunmamış, unikal elementlərdən ibarət to'plamdır. O, hash-cədvələ əsaslanır və elementlərin əlavə edilməsi, silinməsi və mövcudluğunun yoxlanması kimi əməliyyatları sürətli şəkildə həyata keçirir (orta hesabla, O(1) vaxtda).

HashSet<T>-in əsas xüsusiyyətləri:

  • Unikalıq: Dublikatlar saxlaya bilməz. Mövcud element əlavə etməyə cəhd edildikdə, əməliyyat nəzərə alınmır.
  • Tərtibsizlik: Elementlər müəyyən bir qaydada saxlanmır. Dövr etmə ardıcıllığı əlavə edilmə ardıcıllığından fərqli ola bilər.
  • Performans: Hashing istifadə olunduğu üçün, axtarış, əlavə və silmə əməliyyatlarının orta vaxt mürəkkəbliyi O(1)-dir. Pis hash funksiyası və ya kolliziya hallarında performans aşağı düşə bilər.
  • Çoxsaylı əməliyyatlar: Birlik (UnionWith), kəsişmə (IntersectWith), fərq (ExceptWith), alt və ya üst to'plamın yoxlanması (IsSubsetOf, IsSupersetOf) kimi müxtəlif əməliyyatları dəstəkləyir.

İstifadə nümunəsi:

// HashSet yaradılması
HashSet<string> meyvələr = new HashSet<string>();

// Elementlərin əlavə olunması
fruits.Add("alma");
fruits.Add("banan");
fruits.Add("portağal");
fruits.Add("alma"); // Yadda saxlanmayacaq, çünki "alma" artıq mövcuddur

// Elementin mövcudluğunun yoxlanması
bool varBanan = fruits.Contains("banan"); // true
bool varÜzüm = fruits.Contains("üzüm"); // false

// Elementin silinməsi
fruits.Remove("portağal");

// Elementlərin dövrü
foreach (string fruit in fruits)
{
    // Nəticə: alma, banan (sıra dəyişə bilər)
    Console.WriteLine(fruit);
}

// Koleksiyanın ölçüsü
int count = fruits.Count; // 2

HashSet<T> ICollection<T>, IEnumerable<T>ISet<T> interfeyslərini həyata keçirir və onu müxtəlif kolleksiya ssenarilərində istifadə etməyə və xüsusi to'plam əməliyyatlarını həyata keçirməyə imkan verir.