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> və 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.