HashMap

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

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

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

مثال

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

1import java.util.HashMap; // import the HashMap class
2
3HashMap<String, String> capitalCities = new HashMap<String, String>();

اضافه کردن آیتم ها

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

مثال

 1// Import the HashMap class
 2import java.util.HashMap;
 3
 4public class MyClass {
 5  public static void main(String[] args) {
 6    // Create a HashMap object called capitalCities
 7    HashMap<String, String> capitalCities = new HashMap<String, String>();
 8
 9    // Add keys and values (Country, City)
10    capitalCities.put("England", "London");
11    capitalCities.put("Germany", "Berlin");
12    capitalCities.put("Norway", "Oslo");
13    capitalCities.put("USA", "Washington DC");
14    System.out.println(capitalCities);
15  }
16}


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


دسترسی به یک عنصر

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

مثال

capitalCities.get("England");


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


حذف یک عنصر

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

مثال

capitalCities.remove("England");


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


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

مثال

capitalCities.clear();


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


اندازه HashMap

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

مثال

capitalCities.size();


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


ایجاد حلقه درون یک HashMap

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

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

مثال

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


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


مثال

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


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


مثال

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


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


سایر انواع HashMap

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

مثال

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

 1// Import the HashMap class
 2import java.util.HashMap;
 3
 4public class MyClass {
 5  public static void main(String[] args) {
 6
 7    // Create a HashMap object called people
 8    HashMap<String, Integer> people = new HashMap<String, Integer>();
 9
10
11    // Add keys and values (Name, Age)
12    people.put("John", 32);
13    people.put("Steve", 30);
14    people.put("Angie", 33);
15
16    for (String i : people.keySet()) {
17      System.out.println("key: " + i + " value: " + people.get(i));
18    }
19  }
20}


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


منابع آموزشی