Collection در جاوا , HashMap

ناصر نادری | 1394/05/27


بنام خدا .

امروز میخواییم با مبحث HashMap مباحث مربوط به Collection در جاوا رو به پایان ببریم. البته این بحث شاخه های زیادی داره که اکثرا شبیه به هم هستن و زمانی توی استفاده از این اشیا باید دقت کرد که میخواییم برنامه ای بهینه و اصولی داشته باشیم . برای تحقیق بیشتر در مورد Collectio در جاوا میتونید به سایتهایی مثل java2s.com و یا Tutorialspoint.com مراجعه کنید که برای خود منهم مراجع اصلی هستن.

اما بریم سراغ HashMap  . قبلا در مورد List وSet و تفاوتهاشون صحبت کردم. اینبار بحث ما روی Map که در اصل به معنای نگاشت هست . حالا HashMapیا TreeMap یا LinkedHashMapکه از همگی از ایترفیس Map ایملیمنت شدن . 

HashMap در واقع برای ذخیره جفت مقدار و کلید استفاده میشه و میتونه مقدار null رو هم بپذیره و در عمل ذخیره سازی بصورت مرتب رو تضمین نمیکنه . 

توی کد زیر طریق استفاده از این کلاس که شبیه کلاس Hashtable هست رو توضیح داده :

 package hashmapexample;

import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;
public class HashMapExample {

public static void main(String args[]) {

    /* تعریف هش مپ */
    HashMap<Integer, String> hmap = new HashMap<Integer, String>();

    /*افزوردن عناصر بهصورت جفت مقدار و کلید که کلیدش اعدادیه که میبینید*/
    hmap.put(1, "php");
    hmap.put(2, "java");
    hmap.put(5, "ruby");
    hmap.put(8, "csharp");
    hmap.put(15, "c++");

    /* مشاهده مقادیر داخل هش مپ با استفاده از ایتریتور*/
    Set set = hmap.entrySet();
    Iterator iterator = set.iterator();
    while(iterator.hasNext()) {
        Map.Entry mentry = (Map.Entry)iterator.next();
        System.out.print("key is: "+ mentry.getKey() + " & Value is: ");
         System.out.println(mentry.getValue());
    }

    /* گرفتن مقدار از طریق کلید   */
    String var= hmap.get(2);
    System.out.println("مقدار مربوط به کلید 2 : "+var);

    /* پاک کردن یک مقدار در اندیس کلید داده شده    */
    hmap.remove(3);
    System.out.println("مقادیر داخل مپ بعد از حذف یک عنصر:");
    Set set2 = hmap.entrySet();
    Iterator iterator2 = set2.iterator();
    while(iterator2.hasNext()) {
        Map.Entry mentry2 = (Map.Entry)iterator2.next();
        System.out.print("Key is: "+mentry2.getKey() + " & Value is: ");
         System.out.println(mentry2.getValue());
    }

}
} 

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

 key is: 1 & Value is: php
key is: 2 & Value is: java
key is: 5 & Value is: ruby
key is: 8 & Value is: csharp
key is: 15 & Value is: c++
مقدار مربوط به کلید 2 : java
مقادیر داخل مپ بعد از حذف یک عنصر:
Key is: 1 & Value is: php
Key is: 2 & Value is: java
Key is: 5 & Value is: ruby
Key is: 8 & Value is: csharp
Key is: 15 & Value is: c++ 

برخی از متدهای مفید برای کار با HashMap به شرح زیر است...

 boolean containsKey(Object key):

مقدار درستی درصورت بودن کلید مورد نظر در hashmap


boolean containsValue(Object Value): 

مقدار درستی در صورتی که مقدار مورد نظر در map موجود باشه


boolean isEmpty(): 

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


Set keySet():

برگردادن مجموعه کلیدهای داخل مپ .


int size():

تعداد عناصر رو برمیگردونه.


Collection values():

برگردادن کالکشن مربوط به مقادیر داخل map.


Value remove(Object key):


حذف یک عنصر برحسب مقدار کلید اون عنصر


void putAll(Map m):

کپی کردن تمام عناصر یک مپ در یک مپ دیگر.

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


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

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