Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

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

  • مقدمة
  • دوال الإنترفيس Iterator
  • مثال شامل

مقدمة

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

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


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

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

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

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());
}
}
}
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
A B C D E