تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00
با توجه به مسدود بودن IP های خارج از ایران در سامانه شاپرک، برای خرید از وب سایت حتماً فیلترشکن خود را خاموش و از IP ایران استفاده کنید.
در توسینسو تدریس کنید

آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration

با سلام به شما دوستان و همراهان Itpro. تا به این قسمت از مطالب به مفاهیم زبان جاوا و مفاهیم شئ گرایی در جاوا در Itpro پرداختیم. ولی باید بگم که مطالبی که تا کنون توضیح دادیم مطالب پایه و اساسی زبان جاوا بودند. حال از این به بعد به بررسی مفاهیم پیشرفته تر در جاوا می پردازیم که هنگام تولید و ساختن یک برنامه بزرگ و اپلیکیشن مفید قابل استفاده خواهد بود. قسمت اولی که مورد بررسی خواهیم داد مکانیزم هایی است که برای دسته بندی و سازماندهی داده ها استفاده می شود. به این مکانیزم های Data structure گفته می شود که ترجمه فارسی آن داده ساختار است (بعضیا بهش میگن ساختمان داده ها که توی دانشگاه چند واحدشون رو براش میذارن :D) داده ساختارهایی که جاوا در درون خود دارد در پکیج utility قرار دارند و بسیار قدرتمند و پرکاربرد هستند. این داده ساختار ها عبارتند از:

  • Enumeration
  • BitSet
  • Vector
  • Stack
  • Dictionary
  • Hashtable
  • Propperties

همه این کلاس ها در جاوا وجود دارند و همه ی آنها برای نگهداری داده ها به شکل های گوناگون می باشند که به توضیح آنها خواهیم پرداخت. البته این ها داده ساختار های پیچیده زبان جاوا هستند. داده ساختار های ساده در جاوا عبارتند از متغیر ها و آرایه ها و ArrayList ها که قبلا به توضیح آنها در Itpro پرداخته ایم.

Enumeration

اینترفیس Enumeration به خودی خود یک داده ساختار نیست. اما در مجموعه داده ساختار ها بسیار مهم است. این اینترفیس یک ابزاری را برای استخراج داده های ترتیبی از یک داده ساختار را فراهم می کند. برای مثال اینترفیس Enumeration متد nextElement را تعریف می کند که این متد برای به دست آوردن عنصر بعدی از یک داده ساختار که چندین عنصر داردد به کار می رود. در کل این اینترفیس متدهایی را تعریف می کند که برای شمارش و استخراج یک به یک مجموعه داده به کار گرفته می شوند. این اینترفیس قدیمی است. اگرچه این اینترفیس منسوخ نشده است ولی در کدهای جدید مورد استفاده قرار نمی گیرد. اما این اینترفیس توسط کلاس هایی مثل Vector و Properties و برخی از کلاس های API ها مورد استفاده قرار می گیرد. متدهای اینترفیس Enumeration در ادامه آورده شده اند.

  • متد hasMoreElements این متد دارای مقدار بازگشتی Boolean است و هیچ ورودی را نمی گیرد. وظیفه این متد این است که مشخص می کند که داده های یک داده ساختار به اتمام رسیده اند یا خیر. به عبارت دیگر وقتی که شما این اینترفیس را پیاده سازی می کنید در این قسمت باید مشخص کنید که در داده ساختار مورد نظر همه ی داده ها را استخراج کرده ایم یا خیر.
  • متد nextElement این متد یک شئ object برمی گرداند و این شئ همان مقدار داده بعدی در داده ساختار مورد نظر است.برای مثال به برنامه زیر دقت کنید.

در برنامه زیر نحوه پیاده سازی و استفاده ازاین اینترفیس را نشان داده ایم.

import java.util.ArrayList;
import java.util.Enumeration;


public class Main {

    public static void main(String[] args) {
        Enumeration forums;
        ArrayList<String> itproCommunities=new ArrayList<>();
        itproCommunities.add("network");
        itproCommunities.add("programming");
        itproCommunities.add("security");
        itproCommunities.add("linux");
        itproCommunities.add("web");
        itproCommunities.add("dba");
        forums=new Enumerator(itproCommunities);
        while (forums.hasMoreElements()){
            System.out.println(forums.nextElement());
        }
    }
    static class Enumerator implements Enumeration<String>{
        private ArrayList<String> strings;
        int index;

        public Enumerator(ArrayList<String> strings) {
            this.strings = strings;
            index=0;
        }

        @Override
        public boolean hasMoreElements() {
            return index<strings.size();
        }

        @Override
        public String nextElement() {
            return strings.get(index++);
        }
    }
}

خروجی برنامه بالا به شکل زیر خواهد بود:

network
programming
security
linux
web
dba

نحوه عملکرد این اینترفیس بسیار شبه به iterator می باشد. که کار آن پیمایش داده های موجود در یک داده ساختار دیگر است.Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...