HashMap
ساختار کلید-مقدار HashMap: put، get، keySet و پیمایش.
HashMap چیست؟
مجموعه جفتهای کلید-مقدار — مثل دیکشنری: هر کلید منحصربهفرد به یک مقدار اشاره میکند:
import java.util.HashMap;
HashMap<String, Integer> ages = new HashMap<String, Integer>();
متدهای پرکاربرد
| متد | کاربرد | مثال |
|---|---|---|
put(k, v) | افزودن/تغییر | ages.put("علی", 25) |
get(k) | خواندن مقدار | ages.get("علی") |
containsKey(k) | کلید وجود دارد؟ | ages.containsKey("سارا") |
remove(k) | حذف با کلید | ages.remove("علی") |
size() | تعداد جفتها | ages.size() |
keySet() | همه کلیدها | ages.keySet() |
getOrDefault(k, d) | با پیشفرض | ages.getOrDefault("x", 0) |
مثال کامل
HashMap<String, Integer> ages = new HashMap<String, Integer>();
// افزودن
ages.put("علی", 25);
ages.put("سارا", 30);
ages.put("رضا", 28);
System.out.println(ages.get("علی")); ← 25
System.out.println(ages.size()); ← 3
// تغییر (کلید تکراری = بهروزرسانی)
ages.put("علی", 26);
System.out.println(ages.get("علی")); ← 26
// بررسی
System.out.println(ages.containsKey("سارا")); ← true
// حذف
ages.remove("رضا");
System.out.println(ages.size()); ← 2
پیمایش HashMap
// پیمایش کلیدها
for (String name : ages.keySet()) {
System.out.println(name + " → " + ages.get(name));
}
// خروجی (ترتیب تضمین نمیشود):
// علی → ۲۶
// سارا → ۳۰
مثال عملی: شمارش کلمات
String[] words = {"گو", "سریع", "گو", "ساده", "گو"};
HashMap<String, Integer> counts = new HashMap<String, Integer>();
for (String word : words) {
counts.put(word, counts.getOrDefault(word, 0) + 1);
}
System.out.println(counts); ← {گو=3, سریع=1, ساده=1}
ترتیب عناصر در HashMap تضمین نمیشود — اگر ترتیب مهم است از
LinkedHashMap استفاده کنید.getOrDefault — الگوی مفید
// بدون getOrDefault (طولانی)
int count = 0;
if (counts.containsKey(word)) {
count = counts.get(word);
}
counts.put(word, count + 1);
// با getOrDefault (کوتاه!)
counts.put(word, counts.getOrDefault(word, 0) + 1);
این مبحث بخشی از دوره آموزش کامل جاوا است.