ساختمان داده ها در جاوا (Enums) مجموعه شمارشی

بنام خدا .

سلام خدمت دوستان عزیز و علاقمند به برنامه نویسی. تصمیم داریم در این سری از آموزش ها مباحث پیشرفته زبان برنامه نویسی جاوا رو در خدمتتون باشیم.

برای شروع میریم سراغ بحث ساختمان داده ها در java که بیشتر سایتهای انگلیسی زبان هم  اون رو بعنوان یک بحث پیشرفته آموزش میدن.

ساختمان داده ها چیست ؟  شاید خیلی خلاصه بشه گفت که نحوه آرایش داده ها در حافظه ram در هنگام اجرای برنامه رو ساختمان داده میگن . مثلا شما وقتی یک کلاس ایجاد میکنید java runtime اون رو توی یک ساختمان داده ای به نام heap در حافظه اصلی  نگهداری میکنه .  حالا همین heap یکسری اعمال روش انجام میشه , مثل مرتب سازی و جستجو و درج و حذف یک گره . مجموع این اعمال  رو به اصطلاح میگیم  علوم ساختمان داده ها .

ولی تو این آموزشها ما قصد نداریم که علم ساختمان داده ها رو تشریح کنیم .  ما فقط  انواع ساختمان های داده ای که توی جاوا هست رو با ذکر مثال براتون توضیح خواهیم داد تا با دید بازتری ازشون توی برنامه هاتون استفاده کنید .

از مهمترین ساختمان داده هایی که توی جاوا پشتیبانی میشه , انواع زیر رو میتونیم نام ببریم :

Enumeration : مجموعه های شمارشی BitSet : مجموعه بیتی Vector : مختصات ها Stack : پشته Dictionary : دیکشنری Hashtable : جدول هش Properties : خاصیت ها

تواین جلسه مجموعه های شمارشی و یا همون  Enumeration  رو  درخدمتتون خواهیم بود.

Enumeration : یا مجموعه های شمارشی یک ابزار برای برنامه نویسی منظم محسوب میشن .  مورد استفادش زمانی هست  که بخواهیم  یک مجموعه محدوی رو مشخص کنیم . مثلا روزهای هفته یک مجموع محدود هست  که بهتره با Enum ها مشخص بشه و یا مثلا وقتی  میخواییم کاربر از بین سه  رنگ یکی  رو انتخاب کنه  مثل قرمز , آبی و سبز  بهتره اون رو با Enum  ها پیاده کنیم.  وقتی از این مجموعه های شمارشی استفاده میکنیم , جاوا امکاناتی رو برای کار روی مجموعه مثل گرفتن عنصر قبل یا بعدی یا تعداد عناصر یا شماره متناظر با هر عنصر و دهها امکان دیگه رو به ما میده که برنامه مون هرچه مرتب تر و ساختبافته تر بشه .

داخل کلاس و خارج از تمام متدها بصورت زیر یک مجموعه  شمارشی رو تعریف میکنیم :


public enum MyColors {
    RED,
    GREEN,
    BLUE
}

تعریف متغییر از مجموعه سفارشی :


//تعریف و مقدار دهی
MyColors mycolors = MyColors.RED

if( mycolors == MyColors.RED) {
    //کد شما
} else if( mycolors == MyColors.GREEN) {
    //کد شما
} else if( mycolors == MyColors.BLUE) {
    //کد شما
}

//پیمایش و چاپ عناصر مجموعه
for (MyColors mycolor : MyColors.values()) {
    System.out.println(mycolor);
}

میتونیم  مجموعه های شمارشی رو مثل  کلاس تعریف کنیم با اعضا و سازنده :


public enum MyColors {
RED (3), //اختصاص عدد 3 به رنگ قرمز
GREEN(2), 
BLUE (1) 
; // برای اینچنین مجموعه های شمارشی باید بعد از بخش مقادیر یک سیمیکولون بذاریم

//یک متغییر عضو از enum
private final int myColorsNUM;

//سازنده مجموعه شمارشی
MyColors(int color) {
    this.myColorsNUM = color;
}

//متدی برای گرفتن کد مربوط به گزینه انتخاب شده 
public int getColorCode() {
    return this.myColorsNUM;
}

}

میتونیم به شکل زیر از مجموعه شمارشی که تعریف کردیم استفده کنیم :


MyColors mycolors= MyColors.RED;

System.out.println(mycolors.getColorCode());

تا جلسه بعد در پناه حق ...


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید