تخطَّ إلى المحتوى

TreeMap

الخريطة المرتبة TreeMap TreeMap

TreeMap خريطة تحافظ على ترتيب المفاتيح تصاعديًا — بديل HashMap عندما تحتاج ترتيب.

TreeMap تستخدم شجرة حمراء وسوداء (Red-Black Tree) داخليًا للحفاظ على ترتيب المفاتيح. الإضافة والبحث والحذف بتعقيد O(log n). المفاتيح يجب أن تُنفذ Comparable أو تمرر Comparator.

الصياغة

TreeMap<K, V> map = new TreeMap<>();
map.put(key, value);
map.firstKey();
map.lastKey();
map.headMap(key);
map.tailMap(key);

📄 مثال

import java.util.TreeMap;

TreeMap<String, Integer> scores = new TreeMap<>();
scores.put("سارة", 95);
scores.put("أحمد", 87);
scores.put("محمد", 92);

System.out.println(scores.firstKey()); // أحمد (أبجدي)
System.out.println(scores.lastKey());  // سارة
System.out.println(scores.headMap("محمد")); // {أحمد=87}

أهم النقاط

العنصرالوظيفة
put(K, V)إضافة مع الحفاظ على ترتيب المفاتيح — O(log n)
firstKey() / lastKey()أصغر وأكبر مفتاح
headMap(K)كل المفاتيح قبل K
tailMap(K)كل المفاتيح من K فصاعدًا
comparator()يُرجع Comparator المستخدم أو null إذا كان Comparable

💡 نصائح عملية

  • استخدمها عندما تحتاج مفاتيح مرتبة — HashMap أسرع لكن بلا ترتيب
  • TreeMap مع Comparator مخصص تتيح ترتيبًا مخصصًا على المفاتيح

⚠️ أخطاء شائعة

  • إدراج مفتاح لا يُنفذ Comparable وبدون Comparator — ClassCastException
  • توقع O(1) مثل HashMap — TreeMap أبطأ بـ O(log n)

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.