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

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