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);

این مبحث بخشی از دوره آموزش کامل جاوا است.

ابزارهای مرتبط