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 الكامل بالعربي.