Queue, Stack, و Hashtable در #C
شناسه پست: 2232
بازدید: 699

در این مقاله، ما میخواهیم در مورد کالکشنهای Stack،Queue و Hashtable در #C، نحوه استفاده از آنها و متدهایی که ارائه میدهند صحبت کنیم.

این مقاله، سرفصلی از دوره آموزشی زیر میباشد:

اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک سطح متوسطه #C کلیک کنید.

برای دانلود سورس مثالها، روی لینک Collection ها در #C کلیک کنید.

خب شروع کنیم.

ما این مقاله را به قسمتهای زیر تقسیم میکنیم:

کالکشن Queue

کالکشن queue ارائه دهنده کالکشنی از آبجکتها به صورت first-in ، first-out است. این بدان معناست که ما میتوانیم آبجکتهایمان را با یک ترتیب معین در یک کالکشن queue قرار دهیم و با همان ترتیب نیز حذف کنیم. پس اولین آبجکتی که وارد صف (queue) میشود اولین آبجکتی است که از صف خارج میشود.

برای ایجاد یک نمونه آبجکت از یک کالکشن queue می توان از دو دستور مختلف استفاده کرد.

با استفاده از فضای نام System.Collection.Generic:

با استفاده از فضای نام System.Collection:

اگر ما یک آبجکت را با ارائه یک type (در مثال ما یک  int) تعریف کنیم، میتوانیم فقط اعداد integer داخل آن ذخیره کنیم. از طرف دیگر، اگر از مثال دوم استفاده کنیم، چون در این حالت، آن آبجکتها را ذخیره میکند پس میتوانیم نوعهای داده ای مختلف را در کالکشن ذخیره کنیم.

رایجترین متدها و ویژگیها

متد Enqueue، یک عنصر را درون یک کالکشن اضافه میکند:

زمانی که میخواهیم یک عنصر را که در ابتدای کالکشن وارد شده است را حذف کنیم و آن را به عنوان خروجی برگردانیم، از متد Dequeue استفاده میکنیم:

متد Peek، یک عنصر را که در ابتدای کالکشن وارد شده است را برمیگرداند اما آن را حذف نمیکند:

متد Clear، تمام عنصرهای موجود در کالکشن را حذف میکند.

اگر بخواهیم بررسی کنیم که چه تعداد عنصر در داخل کالکشن داریم، میتوانیم از ویژگی Count استفاده کنیم:

کالکشن Stack

کالکشن stack، ارائه دهنده یک کالشکن به صورت last-in ،first-out است. به این معنی که، یک عنصری که اول وارد کالکشن میشود آخر از همه خارج میشود.

همانند کالکشن Queue، میتوانیم از فضای نام های System.Collection و System.Collection.Generic برای این کالکشن نیز استفاده کنیم:

متدها و ویژگیهای مرتبط

متد Push، یک آبجکت را در انتهای کالکشن درج میکند:

متد Pop، عنصری که آخر از همه وارد کالکشن شده است را حذف کرده و آن را به عنوان خروجی برمیگرداند:

متد Peek، آبجکتی که آماده به خروج از کالکشن است را به عنوان خروجی برمیگرداند، اما آن را حذف نمیکند:

برای حذف تمام آبجکتها از یک کالکشن، از متد Clear استفاده میکنیم.

اگر تعداد عناصر را بخواهیم، از ویژگی Count استفاده میکنیم:

Hashtable

Hashtable ارائه دهنده یک کالکشن به صورت جفت مقدار و کلید میباشد که بر اساس یک کد hash شده از کلید سازماندهی شده است. برخلاف کالکشنهای queue و stack، ما فقط میتوانیم از فضای نام System.Collections برای نمونه سازی یک آبجکت hashtable استفاده کنیم:

یک سازنده Hashtable، دارای 15 سازنده overload است.

متدهای رایج در کالکشن Hashtable

متد Add، یک عنصر را با کلید تعیین شده به همراه مقدار مورد نظر در کالکشن اضافه میکند:

متد Remove، عنصر را با کلید تعیین شده از یک کالکشن حذف میکند:

ContainsKey بررسی میکد که آیا یک کالکشن، شامل کلید مورد نظر است یا خیر:

ContainsValue بررسی میکد که آیا یک کالکشن، شامل مقدار مورد نظر است یا خیر.

Clear تمام عنصرها را از یک کالکشن حذف میکند:

ویژگیهای رایج در کالکشن Hashtable

ویژگی Count، تعداد عنصرهای موجود در یک کالکشن را برمیگرداند:

ویژگی Keys، تمام کلیدهای یک کالکشن و ویژگی Values، تمام مقدارهای یک کالکشن را برمیگرداند:

نتیجه گیری

در این مقاله، ما یاد گرفتیم که:

  • کالکشن  Queue را به همراه متدهای آن استفاده کنیم.
  • کالکشن Stack را به همراه متدهای آن استفاده کنیم.
  • کالکشن Hashtable را به مراه متدهای آن استفاده کنیم.

در مقاله بعدی، ما در مورد List و Dictionary در #C صحبت میکنیم.

نویسنده

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