HashTable در #C

سه شنبه 9 شهریور 1395

در این مقاله شما توسط یک مثال ساده و روشن راجع‌به «جدول درهم‌سازی» (HashTable) در زبان برنامه نویسی #C مطالبی را می‌آموزید.

HashTable در #C

بررسی اجمالی

امروز خواهیم‌دید که جدول‌های درهم‌سازی (hashtable) چگونه در C# کار می‌کنند. جدول‌های درهم‌سازی فقط مجموعه‌ای از جفت‌های کلید-مقدار هستند. ما در این مقاله جزئیات آن‌را خواهیم‌دید.

درهم سازی

مقدمه

جدول درهم‌سازی مجموعه‌ای از جفت‌های کلید-مقدار است که این جفت‌ها براساس کد درهم‌سازی  کلیدهایشان درون جدول سازمان‌دهی شده‌اند.

هنگامی که یک المان جدید اضافه می‌کنید، این المان به جدول درهم‌سازی وارد شده و کد درهم‌سازی متناظر با آن به‌طور خودکار تولید می‌گردد. این‌جا برای دسترسی به کدهای درهم‌سازی از کلیدها استفاده می‌کنیم. جدول درهم‌سازی به‌کمک کلیدها، جستجو را بهینه‌سازی می‌نماید.

شکل درهم‌سازی

شیوه‌ی نگارش دستور

اینک ما یک constructor را توسط constructor پیش‌فرض آن ایجاد نموده‌ایم.

    Hashtable at=new Hashtable();  

اضافه‌کردن کلید

    at.Add(“1”,”Value”);  

عدد «1»، این‌جا همان کلید به‌همراه مقادیر مربوطه است.

اکنون شما برای نمایش المان‌ها باید از حلقه‌ی for each استفاده کنید.

برای بازیابی المان ازطریق جدول درهم‌سازی، از واژه‌نامه‌ی ورودی استفاده کنید.

    foreach(DictionaryEntry e in ht)   
    {  
        Console.WriteLine(“{  
            0  
        }, {  
            1  
        }”, e.Key, e.Value);  
    }  

برای ارزیابی کلیدها

    ht.ContainsKey(1);  

برای ارزیابی مقدار

    int value = (int) ht[“One”];   

نیاز داریم آن‌را درغالب نوع‌داده قالب‌دهی کنیم.

خاصیت‌های «جدول درهم‌سازی»

1- Keys: یک ICollection دریافت می‌کند که کلیدهای درون جدول درهم‌سازی را شامل می‌شود.

2- Values: یک ICollection دریافت می‌کند که مقادیر درون جدول درهم‌سازی دربر می‌گیرد.

تغییر نوع در «جدول درهم‌سازی»

برای اقدام به‌منظور تغییرنوع  یک شئ به یک نوع مرجع خاص می‌توانیم از عملگر «as» استفاده کنیم. این عملگر true یا false را بازگشت می‌دهد و به‌همچنین برای کاهش‌دادن تعداددفعات تغییرنوع می‌توانید از عملگر «is» استفاده کنید.

چگونگی ذخیره‌نمودن کلیدها را در لیست یک آرایه:

برای ذخیره‌سازی کلیدها در لیست یک آرایه، می‌توانید از خاصیت کلیدهای جدول درهم‌سازی استفاده فرمایید. به‌عنوان مثال:

    ArrayList al = new ArrayList(ht.Keys)  
        // For retrieving elements in the arraylist  
    foreach(int key in al) r {  
        Console.WriteLine(Key);  
    }  

مزیت‌های جدول درهم‌سازی

1- جدول درهم‌سازی در زمان اجرا اجازه می‌دهد جستجو، بازیابی و تنظیم عملگرها حتی برای مجموعه‌های بزرگ نیز تقریبا ثابت باقی بمانند.

2- در مجموعه‌های داده‌های بزرگ، جدول درهم‌سازی توانایی‌ای برای قراردادن سریع هر مورد است.

3- برای یافتن یک مورد خاص، نیازی به پیمایش سرتاسر مجموعه‌‌های داده‌ها نیست.

به‌عنوان مثال، ما یک نمونه از جدول درهم‌سازی را ایجاد کردیم و 4 المان را در آن اضافه نمودیم. متعاقبا و دست‌آخر ما تمام المان‌ها را در جدول درهم‌سازی، و کلیدهای داده‌شده برای لیست آرایه‌ها که تمام کلیدهای جدول درهم‌سازی را دربر می‌گیرند را چاپ می‌کنیم.

مثال:

    using System;  
    using System.Collections;  
    namespace hasthtab  
    {  
        class Program   
        {  
            static void Main(string[] args) {  
                Hashtable ht = new Hashtable();  
                ht.Add("1", "Akshay");  
                ht.Add("2", "Hari");  
                ht.Add("3", "Raghvan");  
                ht.Add("4", "Milind");  
                ICollection key = ht.Keys;  
                Console.WriteLine("Retrieving all elements: ");  
                Console.WriteLine();  
                foreach(var k in key) {  
                    Console.WriteLine(k + ":" + ht[k]);  
                }  
                ArrayList al = new ArrayList(key);  
                Console.WriteLine("Retrieving all keys in the arraylist");  
                Console.WriteLine();  
                foreach(var n in al) {  
                    Console.WriteLine(n);  
                }  
                Console.ReadKey();  
            }  
        }  
    }  

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید