Javaالإنترفيس ListIterator في جافا
- مقدمة
- دوال الإنترفيس ListIterator
- أمثلة شاملة
مقدمة
الإنترفيس ListIterator يرث من الإنترفيس Iterator, و يملك دوال إضافية للتعامل مع العناصر المخزنة.
إذاً يستخدم أيضاً لتخزين عناصر متتالية موجودة في أي كائن دفعة واحدة.
بعدها يمكن إرجاع هذه العناصر واحداً تلو الآخر.
الدوال التي يملكها تمكنك من المرور على العناصر الموجودة فيه من الأول إلى الأخير أو العكس.
طريقة استخدامه
هناك ثلاث مراحل أساسية عند التعامل مع الإنترفيس ListIterator:
- جلب عناصر أي كائن تريد بواسطة الدالة ListIterator() و تخزينهم مباشرةً في كائن من الإنترفيس ListIterator.
- إنشاء حلقة تمر على جميع العناصر الموجودة في كائن الـ ListIterator بواسطة الدالة hasNext() أو hasPrevious().
- الحصول على عنصر واحد من العناصر الموجودة في كائن الـ ListIterator بواسطة الدالة next() أو previous().
دوال الإنترفيس ListIterator
الجدول التالي يحتوي على دوال الإنترفيس ListIterator.
الدالة مع تعريفها | |
---|---|
1 | public void add(Object obj)
تضيف الكائن الذي نمرره لها كـ Argument في الكائن الذي قام باستدعائها. ملاحظة: إذا قمت باستدعاء الدالة next() قبل استدعائها, عندها سيتم إضافة الكائن obj بعد أخر كائن أرجعته الدالة next(). |
2 | public boolean hasNext() ترجع true في حال كان كائن الـ ListIterator يملك عنصر أو أكثر بعد العنصر الحالي. |
3 | public boolean hasPrevious() ترجع true في حال كان كائن الـ ListIterator يملك عنصر أو أكثر قبل العنصر الحالي. |
4 | public Object next() ترجع العنصر التالي الموجود في كائن الـ ListIterator, ترجعه كـ Object. |
5 | public int nextIndex()
ترجع Index العنصر التالي الموجود في كائن الـ ListIterator. في حال تم المرور على جميع عناصر كائن الـ ListIterator ترجع Index آخر عنصر تم الوصول إليه. |
6 | public Object previous() ترجع العنصر السابق الموجود في كائن الـ ListIterator, ترجعه كـ Object. |
7 | public int previousIndex()
ترجع Index العنصر السابق الموجود في كائن الـ ListIterator. ترجع 1- في حال لم يتم الوصول إلى أي عنصر قبل استدعائها. |
8 | public Object remove() تحذف العنصر الحالي, أي آخر عنصر تم الوصول إليه قبل استدعائها. |
9 | public void set(Object obj) تضع قيمة الكائن الذي نمرره لها كـ Argument كقيمة جديدة للعنصر الحالي, أي مكان آخر عنصر تم الوصول إليه. |
أمثلة شاملة
المثال الأول
في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
في الأخير قمنا بإنشاء حلقة تعرض جميع عناصر الكائن li من العنصر الأول إلى العنصر الأخير.
قمنا باستخدام الدوال hasNext() و next() في الحلقة حتى نستطيع جلب العنصر التالي في الكائن li في كل دورة.
سنحصل على النتيجة التالية عند التشغيل.
المثال الثاني
في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
في الأخير قمنا بإنشاء حلقة تعرض جميع عناصر الكائن li من العنصر الأخير إلى العنصر الأول.
قمنا باستخدام الدوال hasPrevious() و previous() في الحلقة حتى نستطيع جلب العنصر السابق في الكائن li في كل دورة.
سنحصل على النتيجة التالية عند التشغيل.
المثال الثالث
في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
في الأخير قمنا بإنشاء حلقتين: الأولى تعرض جميع عناصر الكائن li من العنصر الأول إلى العنصر الأخير, و الثانية تعرضهم بالعكس.
سنحصل على النتيجة التالية عند التشغيل.