العودة إلى الدورة

العمل مع واجهة Map (HashMap, TreeMap)

إتقان لغة Java: من الصفر إلى مطور محترف (رحلة من 50 درساً)

الدرس 39: العمل مع واجهة Map

الـ Map هي مجموعة تُستخدم لتخزين البيانات في أزواج (مفتاح-قيمة). وتوفر طريقة فعالة لاسترجاع قيمة بناءً على مفتاحها الفريد.

1. الخصائص الرئيسية للخرائط (Maps)

  • يجب أن يكون كل مفتاح فريداً.
  • يمكن أن تتكرر القيم.
  • تُستخدم المفاتيح للبحث؛ والقيم هي البيانات المخزنة.

2. HashMap

  • التنفيذ: تستخدم جدول التجزئة.
  • الأداء: سريعة جداً (O(1)) لعمليات الإضافة والحصول والحذف.
  • الترتيب: لا تضمن أي ترتيب.

java import java.util.HashMap; import java.util.Map;

Map<String, Integer> studentAges = new HashMap<>();

// إضافة العناصر studentAges.put("Charlie", 22); studentAges.put("Mia", 24); studentAges.put("Ben", 22); studentAges.put("Charlie", 23); // المفتاح يجب أن يكون فريداً، يستبدل القيمة القديمة

// استرجاع العناصر System.out.println("Mia's Age: " + studentAges.get("Mia"));

3. التكرار عبر Map

لا يمكن التكرار عبر الخرائط مباشرة. يجب الحصول على أحد العروض الثلاثة:

  1. Key Set: استخدم map.keySet() للحصول على Set لكل المفاتيح.
  2. Values: استخدم map.values() للحصول على Collection لكل القيم.
  3. Entry Set: استخدم map.entrySet() للحصول على Set من كائنات Map.Entry (الأكثر كفاءة للوصول للمفتاح والقيمة معاً).

java for (Map.Entry<String, Integer> entry : studentAges.entrySet()) { System.out.println(entry.getKey() + " is " + entry.getValue()); }

4. TreeMap

  • تخزن المفاتيح في ترتيبها الطبيعي المفرز.
  • أبطأ من HashMap ولكنها توفر تكراراً مرتباً.