Iterator
المُكرّر Iterator Iterator
Iterator يمرّ على عناصر المجموعة عنصرًا واحدًا — الطريقة المعيارية للمرور القابل للتعديل.
Iterator واجهة تسمح بالمرور على عناصر أي مجموعة وحذفها أثناء المرور بأمان. hasNext() يفحص وجود عنصر، next() يُرجع العنصر التالي، remove() يحذف الأخير.
الصياغة
Iterator<T> it = collection.iterator();
while (it.hasNext()) {
T item = it.next();
// معالجة أو حذف
}📄 مثال
import java.util.*;
ArrayList<String> names = new ArrayList<>(
Arrays.asList("سارة", "أحمد", "محمد")
);
Iterator<String> it = names.iterator();
while (it.hasNext()) {
String name = it.next();
if (name.length() < 3) {
it.remove(); // حذف أثناء المرور بأمان
}
}
System.out.println(names); // [سارة, محمد]أهم النقاط
| العنصر | الوظيفة |
|---|---|
| hasNext() | يُرجع true إذا بقي عناصر |
| next() | يُرجع العنصر التالي ويزيد المؤشر |
| remove() | يحذف العنصر الأخير الذي أعاده next() |
| forEachRemaining(consumer) | ينفّذ دالة على كل العناصر الباقية |
💡 نصائح عملية
- لا تحذف أثناء for-each — استخدم Iterator.remove() لتجنب ConcurrentModificationException
- ListIterator نوع متقدم يدعم المرور بالعكسและการعدّل
⚠️ أخطاء شائعة
- حذف عنصر من Collection أثناء for-each مباشرة — ConcurrentModificationException
- nxing next() بدون فحص hasNext() — NoSuchElementException
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.