نطاق وعلاقة Iterator و ListIrator:
(1) يمكن استخدام Iterator لتنفيذ قائمة الواجهة التكرارية ArrayList ، LinkedList ، الخريطة ، إلخ.
(2) يتم استخدام ListIratorator ، كما يوحي الاسم ، لتكرار القائمة لتنفيذ ArrayList و LinkedList.
(3) كما يتضح من رمز المصدر أو وثائق واجهة برمجة التطبيقات ، فإن ITerator هو الفئة الوالدية لـ ListIrator.
قائمة الواجهة العامة <e> يمتد ITERATAR <e> {// shf ...}تمت إضافة طرق جديدة إلى ListIrator.
تحليل الموقف المؤشر الضمني المؤلف:
كما هو موضح في الشكل أعلاه ، هناك أربعة عناصر A ، B ، C ، D في قائمة التجميع التي يكررها المتكرر. عندما يتم استدعاء طريقة xxx.iterator () أو xxx.listiterator () ،
يشير Iterator إلى موضع iterator_one ، وعندما يتم استدعاء طريقة xxx.next () ، يشير موضع التكرار إلى موضع iterator_two.
الموضع الذي يشير إليه التكرار لا يعارض العنصر مباشرة ، ولكن بين العناصر.
طرق في Iterator و ListItiTerator:
------ الطريقة في ITerator:
ملخص أساليب API الرسمية:
تحليل الطريقة:
Hasnext (): يحدد ما إذا كان هناك عنصر في الموضع التالي الذي أشار إليه مؤلف العنصر في المجموعة. العودة الحقيقية ، وإلا عد كاذبة
التالي (): إرجاع قيمة العنصر التالي في الموضع الذي أشار إليه المتكرر.
إزالة (): قم بإزالة القيمة التي تمت إزالتها بواسطة المتكرر من خلال التكرار.
------ الطريقة في ListIritor:
ملخص أساليب API الرسمية:
تحليل الطريقة:
إضافة (EE): أدخل عنصرًا محددًا في المجموعة. يرتبط موضع الإدراج بالعملية الأخيرة التالية () أو السابقة ().
إذا كانت العملية الأخيرة هي التالية () ، فسيتم إدخال العنصر بعد إزالة العنصر بعد ذلك ، وإذا كان سابقًا () ، يتم إدخال العنصر قبل إزالة العنصر.
Hasnext (): عندما يتم اجتياز المجموعة بالترتيب الإيجابي ، فإنها تحدد ما إذا كان العنصر التالي الذي يشير إليه المؤشر الضمني موجود. إذا كان موجودًا ، فإنه يعود صحيحًا ، وإلا فإنه يعود خطأ.
Hasprevious (): عندما يتم اجتياز المجموعة العكسية ، فإنها تحدد ما إذا كان العنصر السابق من المؤشر الضمني موجود. إذا كان موجودًا ، فإنه يعود صحيحًا ، وإلا فإنه يعود خطأ.
التالي (): إرجاع قيمة العنصر التالي في الموضع الذي أشار إليه المؤشر الضمني.
NextIndex (): إرجاع قيمة الفهرس للعنصر التالي في الموضع الذي أشار إليه المؤشر الضمني.
السابق (): إرجاع قيمة العنصر السابقة في الموضع الذي أشار إليه المؤشر الضمني.
PreviousIndex (): إرجاع قيمة الفهرس لعنصر الموضع السابق الذي أشار إليه المؤشر الضمني.
إزالة (): حذف العناصر من المجموعة ليس حذف جميع العناصر ، ولكن لحذف العناصر التي تم إرجاعها بواسطة آخر عملية Next () أو السابقة ().
إذا لم يرد التالي () أو السابق () على قيمة ، فسيتم الإبلاغ عن خطأ.
SET (EE): استبدل العنصر الذي تم إرجاعه بواسطة NEXT () أو السابق () بـ E من القائمة. على سبيل المثال ، إذا تم إخراج Next () كـ A ، فيمكنك استبدال A by واحد بواسطة مجموعة.
مثال 1:
package com.lanhuigu.java ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد java.util.listiTerator ؛ public class listiTeratorApitest {public static void main (string [] args) {list <string> rip ArrayList <string> () ؛ list.add ("a") ؛ list.add ("b") ؛ list.add ("c") ؛ list.add ("d") ؛ // في هذا الوقت ، يشير ITERATAR إلى iterator_one listiTiTerator <string> listItatorator = list.listitorator () ؛ // في هذا الوقت. ListIratorator.next () ؛ // حذف element listIratorator.remove () ؛ // حذف العنصر الذي تم استرداده بواسطة التالي. في هذا الوقت ، تم حذف A من المجموعة. إضافة element // listIratorator.previous () ؛ ListIratorator.add ("E") ؛ // قبل الإشارة إلى الموضع iterator_two ، هو الموضع السابق // طباعة العنصر الذي تم استرداده بواسطة التالي. System.out.println ("FirstElement:" + firstelement) ؛ // إعادة توجيه موضع التأشير إلى موضع iterator_one ، ولكن لم يتم حذف A ، وإضافة e listItiTerator = list.listiterator () ؛ بينما (listIratorator.hasNext ()) {system.out.println (listIratorator.next ()) ؛} System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ list.listIterator () ؛مثال 2:
حزمة com.lanhuigu.java ؛ استيراد java.util.arraylist ؛ استيراد java.util.iterator ؛ استيراد java.util.list ؛ استيراد java.util.listiterator ؛ الفئة العامة iteratorApitest {public static void main (string) ArrayList <String> () ؛ list.add ("a") ؛ list.add ("b") ؛ list.add ("c") ؛ list.add ("d") ؛ // أول طريقة لاجتياز المجموعة هي إقرارها مباشرة من خلال عبارات الحلقة (من أجل ، أثناء وجودها). {system.out.println (e) ؛} system.out.println ("----------------------") ؛ // الطريقة الثانية لاجتياز المجموعة (iterator) iterator <string> iterator = list.iterator () ؛ بينما (iterator.hasnext ()) {system.out.println (iterator.next ()) ؛} system.out.println ("---------------------------------") بينما (listIratorator.hasNext ()) {system.out.println (listIratorator.next ()) ؛} system.out.println ("-------------------") ؛}}لخص
ما سبق هو كل التفسير المفصل لأمثلة Iterator و ListIrator في Java. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!