استفاده از hashtable در سی شارپ
من برای اولین بار میخوام از hash table استفاده کنم
میخوام بدونم که :
1) hash map چیه و چه کاربردی داره؟
2) وقتی من یک آرایه را به hash table اضافه کردم میتونم hash table به عنوان یه فایل جدید ذخیره کنم و دوباره اون آرایه را بازگردانی کنم (از خود فایل ذخیره شده) ؟
3) اگه آرایه من دارای 10 تا آیتم باشه که مجموعه این آیتم ها 50 بیت حافظه بگیره بعد از این که hash table به عنوان یه فایل ذخیره کردم ، اون فایل جدید چقدر حافظه استفاده میکنه؟
4) dictionary چیست و چه مواقعی بهتر ازش استفاده کنم؟
نقل قول: استفاده از hashtable در سی شارپ
سلام.
نقل قول:
نوشته شده توسط
InvBoy01001
1) hash map چیه و چه کاربردی داره؟
در .Net کلاسی با این نام سراغ ندارم ولی معادلش همون Hashtable و Dictionary هستند که مقادیر رو به صورت KeyValuePaire ذخیره می کنند و برای افزایش سرعت در دسترسی به Value ها مقادیر Key رو به صورت Hash نگهداری می کنند.
نقل قول:
نوشته شده توسط
InvBoy01001
2) وقتی من یک آرایه را به hash table اضافه کردم میتونم hash table به عنوان یه فایل جدید ذخیره کنم و دوباره اون آرایه را بازگردانی کنم (از خود فایل ذخیره شده) ؟
Hashtable که Serializable هست ولی بستگی به این داره که انواعی که به عنوان Value استفاده می کنید قابلیت Serialize شدن رو داشته باشند.
نقل قول:
نوشته شده توسط
InvBoy01001
3) اگه آرایه من دارای 10 تا آیتم باشه که مجموعه این آیتم ها 50 بیت حافظه بگیره بعد از این که hash table به عنوان یه فایل ذخیره کردم ، اون فایل جدید چقدر حافظه استفاده میکنه؟
50 بیت که امکانپذیر نیست ولی اگر منظورتون بایت هست، بستگی به نوع Serialization داره که استفاده می کنید. مثلا XML Serialization نسبت به Binary Serialization ممکنه فضای بیشتری نیاز داشته باشه و البته به خود نوعی که امکان Serialize شدن رو فراهم میکنه هم خیلی بستگی داره. اما در کل علاوه بر Data ممکنه اطلاعاتی هم در مورد Type ذخیره بشه که ممکنه قدری حجم اطلاعات ذخیره شده بالاتر از تصور شما باشه.
نقل قول:
نوشته شده توسط
InvBoy01001
4) dictionary چیست و چه مواقعی بهتر ازش استفاده کنم؟
در واقع همون Hashtable هست با امکان Strong typing که به دلیل اینکه نوع Key و Value از قبل مشخص میشند دیگه نیازی به Type Casting هنگام دسترسی به مقادیر نیست و از طرفی هم محدودیتی رو براتون به همراه داره که نمی تونید در حالت عادی از اشیائی با انواع مختلف رو در Key یا Value قرار بدید.