الدرس 38: العمل مع واجهة Set
تجسد واجهة Set المفهوم الرياضي للمجموعة: وهي مجموعة غير مرتبة تحتوي فقط على عناصر فريدة.
1. HashSet
- التنفيذ: تستخدم جدول التجزئة (hash table) للتخزين.
- الأداء: توفر أداءً ثابتاً (O(1)) للعمليات الأساسية مثل الإضافة والحذف، بافتراض وجود دالة تجزئة جيدة.
- الترتيب: لا تضمن ترتيب الإدخال.
java import java.util.HashSet; import java.util.Set;
Set
System.out.println(uniqueColors.size()); // المخرج: 2
2. LinkedHashSet
- تحافظ على ترتيب الإدخال (تمر عبر العناصر بالترتيب الذي أضيفت به).
- أبطأ قليلاً من
HashSetبسبب عبء الحفاظ على هيكل القائمة المرتبطة.
3. TreeSet
- التنفيذ: تستخدم هيكل شجري (Red-Black Tree).
- الترتيب: تخزن العناصر في ترتيبها الطبيعي المفرز.
- الأداء: العمليات بشكل عام تستغرق وقتاً لوغاريتمياً O(log N)، مما يجعلها أبطأ من
HashSetولكنها ضرورية إذا كان المطلوب مخرجات مرتبة.
java import java.util.TreeSet;
TreeSet
// المخرج: [10, 30, 50] (دائماً مرتبة) System.out.println(sortedNumbers);