TreeSet
المجموعة المرتبة TreeSet TreeSet
TreeSet مجموعة فريدة مرتبة تصاعديًا — تحافظ على ترتيب العناصر تلقائيًا.
TreeSet مثل HashSet لكنها تحافظ على ترتيب العناصر باستخدام شجرة حمراء وسوداء. الإضافة والبحث بتعقيد O(log n). العناصر يجب أن تُنفذ Comparable أو تمرر Comparator.
الصياغة
TreeSet<T> set = new TreeSet<>(); set.add(item); set.first(); set.last(); set.headSet(item); set.tailSet(item);
📄 مثال
import java.util.TreeSet; TreeSet<Integer> nums = new TreeSet<>(); nums.add(5); nums.add(1); nums.add(8); nums.add(3); System.out.println(nums); // [1, 3, 5, 8] — مرتبة! System.out.println(nums.first()); // 1 System.out.println(nums.last()); // 8
أهم النقاط
| العنصر | الوظيفة |
|---|---|
| add(item) | إضافة مع الحفاظ على الترتيب — O(log n) |
| first() / last() | أصغر وأكبر عنصر |
| headSet(toElement) | كل العناصر قبل العنصر |
| tailSet(fromElement) | كل العناصر من العنصر فصاعدًا |
💡 نصائح عملية
- استخدمها عندما تحتاج مجموعة فريدة + مرتبة في نفس الوقت
- TreeSet مع Comparator تسمح بترتيب مخصص (مثل ترتيب تنازلي)
⚠️ أخطاء شائعة
- إدراج عنصر لا يُ executes Comparable وبدون Comparator — ClassCastException
- عدم معرفة أن TreeSet تحذف المكرر تلقائيًا مثل HashSet
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.