Javaالإنترفيس Iterator
في جافا
- مقدمة
- دوال الإنترفيس
Iterator
- مثال شامل
مقدمة
الإنترفيس Collection
يرث من الإنترفيس Iterator
. لذلك تجد كل كلاس تابع للإطار Collection
يرث دالة إسمها iterator()
، ترجع كائن نوعه Iterator
يحتوي على جميع عناصر الكائن الذي قام باستدعائها.
إذاً الإنترفيس Iterator
يستخدم لتخزين عناصر متتالية موجودة في أي كائن دفعة واحدة.
بعدها يمكن إرجاع هذه العناصر واحداً تلو الآخر.
طريقة استخدامه
هناك ثلاث مراحل أساسية عند التعامل مع الإنترفيس Iterator
:
- جلب عناصر أي كائن تريد بواسطة الدالة
iterator()
و تخزينهم مباشرةً في كائن من الإنترفيسIterator
. - إنشاء حلقة تمر على جميع العناصر الموجودة في كائن الـ
Iterator
بواسطة الدالةhasNext()
. - الحصول على عنصر واحد من العناصر الموجودة في كائن الـ
Iterator
بواسطة الدالةnext()
.
لا تنسى استخدام الإنترفيس Iterator
بدل الإنترفيس Enumeration
.
نلفت الإنتباه أيضاً أنه تم تطوير إنترفيس جديد إسمه ListIterator
، يرث من الإنترفيس Iterator
، و يملك دوال إضافية للتعامل مع العناصر المخزنة.
دوال الإنترفيس Iterator
الجدول التالي يحتوي على دوال الإنترفيس Iterator
.
الدالة مع تعريفها | |
---|---|
1 | public boolean hasNext()
ترجع true في حال كان كائن الـ Iterator لا يزال يحتوي على عناصر. |
2 | public Object next()
ترجع العنصر التالي الموجود في كائن الـ Iterator ، ترجعه كـ Object . |
3 | public Object remove()
تحذف العنصر الحالي الموجود في كائن الـ Iterator و الذي أرجعته الدالة next() قبل استدعائها.ترجع الإستثناء IllegalStateException في حال تم استدعائها بدون استدعاء الدالة next() قبلها. |
مثال شامل
في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList
إسمه al
، ثم أدخلنا فيه خمسة عناصر.
بعدها وضعنا جميع عناصر الكائن al
في كائن نوعه Iterator
إسمه i
.
في الأخير قمنا بإنشاء حلقة تعرض لنا جميع عناصر الكائن i
.
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