در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary

با سلام به همه دوستان و همراهان Itpro. یکی دیگر از داده ساختار های موجود در جاوا dictionary می باشد. این داده ساختار با داده ساختار هایی که تاکنون گفتیم فرق دارند. به این شکل که این داده ساختار به گونه ای است که یک عنصر کلید دارد و یک عنصر مقدار که این المان ها با هم هستند یعنی به شکلی که هر عضو از کلاس dictionary یک کلید دارد و یک مقدار. از طرفی مقادیر کلیدها باید همیشه یکتا باشد. این برای زمانی که شما قصد دارید با استفاده از کلید به داده های خودتان دسترسی داشته باشید بسیار مناسب است. به علت این که کلاس dictionary یک کلاس abstract است نمی توان از آن یک شئ ساخت که بتوان از استفاده نمود و باید از آن ارث بری کرد. ولی این کلاس یک فریمورک خوب برای جفت کلید و مقدار برای ما فراهم کرده است که بتوان با استفاده از آن کلاس دیکشنری اختصاصی خود را تعریف نمود. برای این که بتوانید یک مقدار را به دست آورید باید کلید آن را داشته باشید. متدهایی که در این کلاس معرفی شده است به شرح زیر است:

  • متد size: این متد تعداد عناصر موجود در دیکشنری را برمی گرداند.
  • متد isEmpty: این متد مشخص می کند که dictionary ما خالی است یا خیر.
  • متد keys: این متد همه ی کلید های موجود را به صورت یک Enumeration برمی گرداند که می توان آنها را پیمایش کرد.
  • متد elements: این متد مجموعه مقادیر را به صورت یک Enumeration برمی گرداند که می توان آنها را پیمایش کرد.
  • متد get: این متد یک کلید می گیرد و مقدار مطابق با آن را برمی گرداند.
  • متد put: این متد یک کلید و یک مقدار را دریافت کرده و آن ها را در dictionary قرار می هد.
  • متد remove: این متد یک کلید دریافت کرده و عنصر آن را از مجموعه حذف می کند.

دقت داشته باشید که کلاس Ditionary می تواند به صورت generic هم پیاده سازی شود ولی ما در اینجا فعلا این کار را نمی کنیم. Generic ها را در مطالب بعدی به طور مفصل شرح خواهیم داد.

کلاس های متعددی مانند HashSet در جاوا هستند که از کلاس dictionary ارث بری کرده اند ولی ما برای این که با کل متدها و مفاهیم این کلاس آشنا شوید یک ارث بری جداگانه از این کلاس داشته و پیاده سازی کرده ایم که در ادامه آن را آورده ایم:

import java.util.ArrayList;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Iterator;

public class DictionaryTest {
    public static void main(String[] args) {
        MyDictionary dictionary = new MyDictionary();
        dictionary.put(1, "Itpro");
        dictionary.put(2, "Itpro.ir");
        dictionary.put(3, "Itpro java");
        System.out.println(dictionary.size());
        System.out.println(dictionary.get(2));
        Object lastValue = dictionary.put(2, "Persian IT Community");
        System.out.println(lastValue);
        System.out.println(dictionary.get(2));
    }
}

class MyDictionary extends Dictionary {
    private ArrayList keyList = new ArrayList();
    private ArrayList valueList = new ArrayList();

    @Override
    public int size() {
        return keyList.size();
    }

    @Override
    public boolean isEmpty() {
        return keyList.isEmpty();
    }

    @Override
    public Enumeration keys() {
        Iterator iterator = keyList.iterator();
        return new Enumeration() {
            @Override
            public boolean hasMoreElements() {
                return iterator.hasNext();
            }

            @Override
            public Object nextElement() {
                return iterator.next();
            }
        };
    }

    @Override
    public Enumeration elements() {
        Iterator iterator = valueList.iterator();
        return new Enumeration() {
            @Override
            public boolean hasMoreElements() {
                return iterator.hasNext();
            }

            @Override
            public Object nextElement() {
                return iterator.next();
            }
        };
    }

    @Override
    public Object get(Object key) {
        int i = keyList.indexOf(key);
        if (i == -1)
            return null;
        else return valueList.get(i);
    }

    @Override
    public Object put(Object key, Object value) {
        Object foundKey = get(key);
        if (foundKey == null) {
            keyList.add(key);
            valueList.add(value);
            return null;
        } else {

            Object lastValue = foundKey;
            int index = keyList.indexOf(key);
            valueList.set(index, value);
            return lastValue;
        }
    }

    @Override
    public Object remove(Object key) {
        int index = keyList.indexOf(key);
        if (index == -1)
            return null;
        Object lastValue = valueList.get(index);
        keyList.remove(index);
        valueList.remove(index);
        return lastValue;
    }
}

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

3
Itpro.ir
Itpro.ir
Persian IT Community

Itpro باشید

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

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

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

#داده_ساختار_ها_در_جاوا #برنامه_نویسی_جاوا #دیکشنری_برای_جاوا #آموزش_برنامه_نویسی_جاوا #آموزش_ساختمان_داده #آموزش_جاوا #کلاس_dictionary_در_جاوا #ساختمان_داده_ها_در_جاوا #dictionary_در_جاوا #دوره_آموزشی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
0 نظر

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

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....