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

و

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

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

با سلام به همه دوستان و همراهان عزیز itpro. داده ساختاری که در این مطلب قصد معرفی آن را داریم Hashtable می باشد. کلاس Hashtable مکانیزمی را فراهم می کند که داده ها بر اساس کلید هایی که از طرف کاربر تعریف شده است مرتب شوند. برای مثال در یک Hashtable که آدرس ها را ذخیره می کند شما می توانید آدرس ها را طبق کدپستی آنها ذخیره و مرتب کنید. می توان گفت که Hashtable یک پیاده سازی و وارث از کلاس dictionary می باشد. کلاس Hashtable در پکیج java.util قرار دارد. اما در نسخه 2 جاوا این کلاس مورد مهندسی مجدد قرار گرفت و اینترفیس Map را هم به آن اضافه کردند.

بنابراین در حال حاضر کلاس Hashtable در داخل فریمورک collections قرار دارد. این کلاس شبیه HashMap است با این تفاوت که این کلاس synchronize شده می باشد. کلاس Hashtable مانند کلاس HashMap داده هار را به صورت جفت های کلیدو مقدار(key value) ذخیره می کند. وقتی که از Hashtable استفاده می کنید شما باید یک شئ را به عنوان کلید برای آن مشخص کنید و یک شئ را به عنوان مقدار مشخص کنید که به کلید وصل شود. مکانیزم Hashtable به این شکل است که کد hash کلید را به دست آورده و از آن به عنوان اندیس پیدا کردن محل عنصر استفاده می کند. بنابراین سرعت آن بالا می باشد. در ادامه constructor هایی که در کلاس Hashtable قرار دارد آورده شده است.

یکی از constructor هایی که این کلاس دارد نوع پیش فرض آن بوده که هیچ پارامتر ورودی ندارد. نوع دوم آن یک مقدار عددی می گیرد که به عنوان سایز Hashtable می باشد و یک Hashtable به اندازه آن درست می کند. نوع سوم constructor این کلاس به این شکل است که علاوه بر مقدار عددی سایز یک مقدار اعشاری نیز دریافت می کند. این مقدار اعشاری دوم برای این است که مشخص کنیم که چه مقدار از Hashtable باید پر شود تا Hashtable تغییر اندازه یا resize بدهد. دقت داشته باشید که این مقدار باید بین 0.0 تا 1.0 باشد. متدهایی که این کلاس دارد را نیز در ادامه آورده ایم:

  • متد clear: این متد کل عناصر موجود در Hashtable را حذف می کند.
  • متد containsVlue: این متد یک ورودی می گیرد و مشخص می کند که آیا شئ وارد شده در value ها وجود دارد یا خیر
  • containsKey: این متد یک ورودی می گیرد و مشخص می کند که آیا شئ وارد شده در key ها وجود دارد یاخیر:
  • متد get این متد یک کلید می گیرد و value آن را برمی گرداند و اگر کلید مورد نظر در داخل Hashtable وجود نداشته باشد مقدار null برمی گرداند.
  • سایر متدهای این کلاس به علت این که این کلاس از کلاس Dictionary ارث بری کرده است همانهایی است که در بخش قبل گفتیم متد مهمی که به این مجموعه متدها اضافه شده است متد rehash است که اندازه hash table را افزایش می دهد و همه ی کلید ها را دوباره hash می کند. برای درک بهتر یک مثال از این کلاس در ادامه آورده ایم که به آن توجه کنید:
  • import java.util.*;
    
    public class HashTableDemo {
    
        public static void main(String args[]) {
            // Create a hash map
            Hashtable balance = new Hashtable();
            Enumeration names;
            String str;
            double bal;
    
            balance.put("Nasiri", new Double(3434.34));
            balance.put("Adeli", new Double(123.22));
            balance.put("Ahmadi", new Double(1378.00));
            balance.put("itpro", new Double(99.22));
            balance.put("Itpro.ir", new Double(-19.08));
    
            // Show all balances in hash table.
            names = balance.keys();
            while(names.hasMoreElements()) {
                str = (String) names.nextElement();
                System.out.println(str + ": " +
                        balance.get(str));
            }
            System.out.println();
            // Deposit 1,000 into Zara's account
            bal = ((Double)balance.get("Adeli")).doubleValue();
            balance.put("Adeli", new Double(bal+1000));
            System.out.println("Adeli's new balance: " +
                    balance.get("Adeli"));
        }
    }
    
    

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

Itpro.ir: -19.08
Ahmadi: 1378.0
itpro: 99.22
Adeli: 123.22
Nasiri: 3434.34

Adeli's new balance: 1123.22

Itpro باشید

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

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

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

#داده_ساختار_ها_در_جاوا #برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #آموزش_ساختمان_داده #آموزش_جاوا #کلاس_dictionary_در_جاوا #ساختمان_داده_ها_در_جاوا #کلاس_hashtable_در_جاوا #دوره_آموزشی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
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 نظر

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

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

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