HashMap
<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 }
منابع آموزشی