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

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