Java الإنترفيس Iterator في جافا

مقدمة

الإنترفيس Collection يرث من الإنترفيس Iterator. لذلك تجد كل كلاس تابع للإطار Collection يرث دالة إسمها iterator()، ترجع كائن نوعه Iterator يحتوي على جميع عناصر الكائن الذي قام باستدعائها.

إذاً الإنترفيس Iterator يستخدم لتخزين عناصر متتالية موجودة في أي كائن دفعة واحدة.
بعدها يمكن إرجاع هذه العناصر واحداً تلو الآخر.


طريقة استخدامه

هناك ثلاث مراحل أساسية عند التعامل مع الإنترفيس Iterator:

  1. جلب عناصر أي كائن تريد بواسطة الدالة iterator() و تخزينهم مباشرةً في كائن من الإنترفيس Iterator.
  2. إنشاء حلقة تمر على جميع العناصر الموجودة في كائن الـ Iterator بواسطة الدالة hasNext().
  3. الحصول على عنصر واحد من العناصر الموجودة في كائن الـ Iterator بواسطة الدالة next().

لا تنسى استخدام الإنترفيس Iterator بدل الإنترفيس Enumeration.

نلفت الإنتباه أيضاً أنه تم تطوير إنترفيس جديد إسمه ListIterator، يرث من الإنترفيس Iterator، و يملك دوال إضافية للتعامل مع العناصر المخزنة.

دوال الإنترفيس Iterator

الجدول التالي يحتوي على دوال الإنترفيس Iterator.

الدالة مع تعريفها
public boolean hasNext() ترجع true في حال كان كائن الـ Iterator لا يزال يحتوي على عناصر.
public Object next() ترجع العنصر التالي الموجود في كائن الـ Iterator، ترجعه كـ Object.
public Object remove() تحذف العنصر الحالي الموجود في كائن الـ Iterator و الذي أرجعته الدالة next() قبل استدعائها.
ترجع الإستثناء IllegalStateException في حال تم استدعائها بدون استدعاء الدالة next() قبلها.

مثال شامل

في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al، ثم أدخلنا فيه خمسة عناصر.
بعدها وضعنا جميع عناصر الكائن al في كائن نوعه Iterator إسمه i.
في الأخير قمنا بإنشاء حلقة تعرض لنا جميع عناصر الكائن i.

Main.java
import java.util.ArrayList;   // ArrayList هنا قمنا باستدعاء الكلاس
import java.util.Iterator;   // Iterator هنا قمنا باستدعاء الإنترفيس
 
public class Main {
 
    public static void main(String[] args) {
 
         // al إسمه ArrayList هنا قمنا بإنشاء كائن من الكلاس
        ArrayList al = new ArrayList();
 
        // al هنا قمنا بإضافة 5 عناصر في الكائن
        al.add("A");
        al.add("B");
        al.add("C");
        al.add("D");
        al.add("E");
 
        // al وضعنا فيه جميع عناصر الكائن i إسمه Iterator هنا قمنا بإنشاء كائن نوعه
        Iterator i = al.iterator();
 
        // و تعرض كل عنصر تمر عليه i هنا أنشأنا حلقة تمر على جميع عناصر الكائن
        while(i.hasNext()) {
            System.out.println(i.next());
        }
 
    }
 
}
		

سنحصل على النتيجة التالية عند التشغيل.

A
B
C
D
E
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة