HashMap

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

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

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

مثال

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

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

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

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

مثال

 1 // Import the HashMap class
 2 import java.util.HashMap;
 3 
 4 public 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
2 for (String i : capitalCities.keySet()) {
3   System.out.println(i);
4 }


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


مثال

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


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


مثال

1 // Print keys and values
2 for (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
 2 import java.util.HashMap;
 3 
 4 public 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 }


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


منابع آموزشی