تفاوت بین یک HashTable و <>Dictionary چیست
خوب تا اونجایی که من می دونم HashTable برای ایجاد جداول با قابلیت جستجو است یعنی موقع اضافه کردن یک شی به یک HashTable نیاز به تعریف یک کلید می باشد که این کلید یکتا بوده و دو شی با کلید یکسان نمی توانند در HashTable موجود باشند. این کلاس در فضای نام System.Collection قرار دارد. اما سوالی که برام به وجود اومده اینه که در فضای نام System.Collections.Generic یک کلاس به نام <Dictionary<Tkey, Tvalue وجود دارد که همان کار HashTable را با آن می توان انجام داد. من می خواستم بدونم که این دو کلاس صرفا دو روش مختلف برای ایجاد جداول با قابلیت جستجو هستند یا اینکه از نظر ظرفیت یا اشغال حافظه با هم تفاوت دارند؟
نقل قول: تفاوت بین یک HashTable و <>Dictionary چیست
سلام
این دو مورد، نوعی از Collection ها هستند که میتوانید مدل های مختلف دیگری با نوع متغیر و الگوریتم های متفاوت را هم باز بیابید.
کلاس Dictionary مورد نظر شما، چون generic است، میتواند تیپ کلید و دیتایش تغییر کند و بسته به نیاز ما ست شود.
کلاس HashTable یک مجموعه عمومی است که با Object کار میکند و برای نگه داری شی های اشاره گری حجیم بسیار مناسب است، و به خاطر الوریتم خاصی که دارد، سرعت یافتن آیتم مورد نظرش در این شرایط بیشتر و بهینه است، مثلاً نگه داری مجموعه ای از کنترلرهای فرم.