HashMap

از موتو کد، دانشنامهٔ برنامه‌نویسی
Main Page Tutorial
Java-menu.jpeg
خانه
متدها در جاوا
کلاس‌ها در جاوا
۱برنامه‌نویسی شیءگرایی
۲کلاس‌ها و اشیاء
۳خاصیت‌های کلاس
۴متدهای کلاس
۵سازنده‌ها
۶Modifier ها
۷کپسوله‌سازی
۸پکیج‌ها
۹ارث بری
۱۰چند ریختی
۱۱کلاس‌های داخلی
۱۲مفهوم انتزاعی
۱۳رابط‌ها
۱۴Enum ها
۱۵دریافت اطلاعات از کاربر
۱۶تاریخ و زمان
۱۷ArrayList
۱۸HashMap
۱۹کلاس‌های Wrapper
۲۰خطاهای جاوا
فایل‌ها در جاوا
مرجع جاوا
مثال‌های جاوا

<translate> نکته</translate> <translate> نکته:</translate> شما از فصل گذشته آموختید، که آرایه‌ها عناصر را به صورت مجموعه‌ای مرتب شده ذخیره می‌کنند و شما مجبور هستید برای دسترسی به عناصر آنها از شماره اندیس (نوع صحیح (int)) استفاده کنید. اما یک HashMapعناصر را به صورت جفت‌هایی از "نام/مقدار" ذخیره می‌کند، و شما می‌توانید به عناصر آن با یک شماره اندیس از یک نوع داده دیگر (برای مثال Stringیا متنی) استفاده کنید. [۱]

یک شیء به عنوان کلید (اندیس) شیء دیگر (مقدار) استفاده می‌شود. HashMap می‌تواند نوع داده‌های مختلفی را ذخیره کند: کلیدهای از نوع متنی و مقادیر عددی، یا داده و کلید همنوع، مانند: کلیدهای متنی و مقادیر متنی:

مثال[ویرایش | ویرایش]

ساخت یک شیء HashMapبه نام capitalCities که کلیدهای متنی را به همراه مقادیر متنی ذخیره می‌کند:

import java.util.HashMap; // import the HashMap class

HashMap<String, String> capitalCities = new HashMap<String, String>();

اضافه کردن آیتم ها[ویرایش | ویرایش]

کلاس HashMapمتدهای کاربردی بسیاری دارد. برای مثال، برای اضافه‌کردن آیتم جدید به آن، از متد put() استفاده کنید:

مثال[ویرایش | ویرایش]

// Import the HashMap class
import java.util.HashMap;

public class MyClass {
  public static void main(String[] args) {
    // Create a HashMap object called capitalCities
    HashMap<String, String> capitalCities = new HashMap<String, String>();

    // Add keys and values (Country, City)
    capitalCities.put("England", "London");
    capitalCities.put("Germany", "Berlin");
    capitalCities.put("Norway", "Oslo");
    capitalCities.put("USA", "Washington DC");
    System.out.println(capitalCities);
  }
}


مشاهدهٔ نتیجه


دسترسی به یک عنصر[ویرایش | ویرایش]

برای دسترسی به یک مقدار در HashMap، از متد get() و مقدار کلید (اندیس) مربوطه برای دسترسی به عنصر استفاده کنید:

مثال[ویرایش | ویرایش]

capitalCities.get("England");


مشاهدهٔ نتیجه


حذف یک عنصر[ویرایش | ویرایش]

برای حذف یک عنصر، از متد remove() و اندیس مربوطه استفاده کنید:

مثال[ویرایش | ویرایش]

capitalCities.remove("England");


مشاهدهٔ نتیجه


برای حذف تمامی عنصرها، از متد clear() استفاده کنید:

مثال[ویرایش | ویرایش]

capitalCities.clear();


مشاهدهٔ نتیجه


اندازه HashMap[ویرایش | ویرایش]

برای فهمیدن تعداد عناصری که در یک HashMap وجود دارند، از متد sizeاستفاده کنید:

مثال[ویرایش | ویرایش]

capitalCities.size();


مشاهدهٔ نتیجه


ایجاد حلقه درون یک HashMap[ویرایش | ویرایش]

می‌توانید در یک HashMapبه وسیله یک حلقه for-each حلقه ایجاد کنید.

نکته: از متد keySet() در صورتی مقادیر کلید را می‌خواهید استفاده کنید، و از متد values() برای زمانی که نیاز به مقادیر دارید استفاده کنید:

مثال[ویرایش | ویرایش]

// Print keys
for (String i : capitalCities.keySet()) {
  System.out.println(i);
}


مشاهدهٔ نتیجه


مثال[ویرایش | ویرایش]

// Print values
for (String i : capitalCities.values()) {
  System.out.println(i);
}


مشاهدهٔ نتیجه


مثال[ویرایش | ویرایش]

// Print keys and values
for (String i : capitalCities.keySet()) {
  System.out.println("key: " + i + " value: " + capitalCities.get(i));
}


مشاهدهٔ نتیجه


سایر انواع HashMap[ویرایش | ویرایش]

مقادیر کلید و مقدار آنها در یک HashMap در حقیقت اشیاء هستند. در مثال بالا، ما از نوع شی «متنی» (String) استفاده کردیم. به یاد داشته باشید که داده نوع متنی در جاوا یک شیء است (نه یک نوع داده اصلی (primitive)). برای استفاده از سایر نوع‌ها مانند int، شما می‌بایست از کلاس‌های برابری مانند: Integerاستفاده کنید. برای نوع داده‌های اصلی، از: Booleanبرای مقادیر boolean، از Characterبرای مقادیر char، از Doubleبرای مقادیر double و ... استفاده کنید.

مثال[ویرایش | ویرایش]

ساخت یک HashMapبه نام people که کلیدهایی از نوع متنی و مقادیری از نوع عددی را ذخیره خواهد کرد:

// Import the HashMap class
import java.util.HashMap;

public class MyClass {
  public static void main(String[] args) {

    // Create a HashMap object called people
    HashMap<String, Integer> people = new HashMap<String, Integer>();


    // Add keys and values (Name, Age)
    people.put("John", 32);
    people.put("Steve", 30);
    people.put("Angie", 33);

    for (String i : people.keySet()) {
      System.out.println("key: " + i + " value: " + people.get(i));
    }
  }
}


مشاهدهٔ نتیجه


منابع آموزشی[ویرایش]