HashSet
مجموعة HashSet HashSet
HashSet مجموعة من العناصر الفريدة فقط — تمنع التكرار وتسمح ببحث سريع.
HashSet تمنع تكرار العناصر تمامًا: إذا حاولت إضافة عنصر موجود مسبقًا، يتم تجاهله بصمت. تستخدم hashing للبحث السريع O(1). مفيدة جدًا لجمع العناصر الفريدة من قائمة أو التحقق من وجود عنصر.
الصياغة
HashSet<T> set = new HashSet<>(); set.add(item); set.contains(item); set.remove(item); set.size();
📄 مثال
import java.util.HashSet;
HashSet<String> cities = new HashSet<>();
cities.add("الرياض");
cities.add("جدة");
cities.add("الرياض"); // يُتجاهل
System.out.println(cities.size()); // 2
System.out.println(cities.contains("جدة")); // trueأهم النقاط
| العنصر | الوظيفة |
|---|---|
| add(item) | يُضيف العنصر — يُتجاهل إذا كان موجودًا |
| contains(item) | يُرجع true إذا العنصر موجود — O(1) |
| remove(item) | يحذف العنصر إن وُجد |
| size() | عدد العناصر الفريدة |
💡 نصائح عملية
- استخدم Set.of() لإنشاء مجموعة غير قابلة للتعديل (immutable): Set.of("a", "b")
- HashSet لا تضمن ترتيب العناصر — لترتيب(TreeSet) أو إدخال(LinkedHashSet)
⚠️ أخطاء شائعة
- استخدام HashSet مع أصناف مخصصة بدون hashCode() و equals() صحيحين — لن تعمل فلتر التكرار
- انتظار ترتيب العناصر — HashSet لا تحافظ على أي ترتيب
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.