logo

איטרטור בג'אווה

ב-Java, an איטרטור הוא אחד מסמני Java. ג'אווה איטרטור הוא ממשק שמתורגל על ​​מנת לחזור על אוסף של רכיבי אובייקט ג'אווה שלמים אחד אחד. זה בחינם לשימוש בשפת התכנות Java מאז מסגרת Java 1.2 Collection. זה שייך לחבילת java.util.

למרות ש-Java Iterator הוצג ב-Java 1.2, עם זאת, זה עדיין לא הכלי הישן ביותר שזמין למעבר בין האלמנטים של אובייקט ה-Collection. האיטרטור הוותיק ביותר בשפת התכנות ג'אווה הוא האיטרטור הקדום ל-Enumerator. ממשק Java Iterator ירש את איטרטור המונה שתורגל בתחילת הדרך לחצות כמה אוספים נגישים כמו ArrayLists.

ה-Java Iterator ידוע גם בשם סמן אוניברסלי של Java כפי שהיא מתאימה לכל השיעורים של מסגרת האוסף. ה-Java Iterator גם עוזר בפעולות כמו READ והסר. כאשר אנו משווים את ממשק Java Iterator לממשק איטרטור הספירה, אנו יכולים לומר ששמות השיטות הזמינות ב-Java Iterator מדויקים יותר ופשוטים יותר לשימוש.

היתרונות של Java Iterator

Iterator בג'אווה הפך לנפוץ מאוד בשל יתרונותיו הרבים. היתרונות של Java Iterator ניתנים כדלקמן -

תגובה ב-xml
  • המשתמש יכול להחיל איטרטורים אלה על כל אחת מהמחלקות של מסגרת האוסף.
  • ב-Java Iterator, אנו יכולים להשתמש בשתי פעולות הקריאה וההסרה.
  • אם משתמש עובד עם לולאת for, הוא לא יכול לשנות (להוסיף/להסיר) את האוסף, בעוד שאם הם משתמשים ב-Java Iterator, הם יכולים פשוט לעדכן את האוסף.
  • ה-Java Iterator נחשב לסמן האוניברסלי עבור ה-API של אוסף.
  • שמות השיטה ב-Java Iterator קלים מאוד ופשוטים מאוד לשימוש.

חסרונות של Java Iterator

למרות היתרונות הרבים, ל-Java Iterator יש גם חסרונות שונים. החסרונות של Java Iterator ניתנים להלן -

  • ה-Java Iterator שומר רק על האיטרציה בכיוון קדימה. במילים פשוטות, ה-Java Iterator הוא איטרטור חד-כיווני.
  • החלפה והרחבה של רכיב חדש אינן מאושרות על ידי Java Iterator.
  • ב-CRUD Operations, ה-Java Iterator אינו מחזיק את הפעולות השונות כמו CREATE ו-UPDATE.
  • בהשוואה ל-Spliterator, Java Iterator אינו תומך במעבר אלמנטים בתבנית המקבילה, מה שמרמז ש-Java Iterator תומך באיטרציה רציפה בלבד.
  • בהשוואה ל-Spliterator, Java Iterator אינו תומך בביצוע אמין יותר כדי לעבור את נפח הנתונים הרב ביותר.

כיצד להשתמש ב-Java Iterator?

כאשר משתמש צריך להשתמש ב-Java Iterator, חובה עליו ליצור מופע של ממשק Iterator מאוסף האובייקטים שהם רוצים לעבור עליהם. לאחר מכן, האיטרטור שהתקבל שומר על שובל הרכיבים באוסף הבסיסי כדי לוודא שהמשתמש יעבור על כל אחד ממרכיבי אוסף האובייקטים.

אם המשתמש משנה את האוסף הבסיסי תוך כדי מעבר על איטרטור המוביל לאותו אוסף, אז האיטרטור בדרך כלל יכיר בכך ויזרוק חריגה בפעם הבאה כשהמשתמש ינסה לקבל את הרכיב הבא מהאיטרטור.

השווה למחרוזות ב-java

שיטות Java Iterator

האיור הבא מציג בצורה מושלמת את דיאגרמת הכיתה של ממשק Java Iterator. הוא מכיל בסך הכל ארבע שיטות שהן:

  • hasNext()
  • הַבָּא()
  • לְהַסִיר()
  • forEachRemaining()

ה forEachRemaining() השיטה נוספה ב-Java 8. הבה נדון בכל שיטה בפירוט.

    boolean hasNext(): השיטה אינה מקבלת שום פרמטר. זה מחזיר נכון אם נותרו עוד אלמנטים באיטרציה. אם לא נשארו עוד אלמנטים, זה יחזיר false.
    אם לא נותרו עוד אלמנטים באיטרציה, אז אין צורך לקרוא למתודה next() . במילים פשוטות, אנו יכולים לומר שהשיטה משמשת כדי לקבוע אם יש לקרוא למתודה next() או לא.E הבא():זה דומה לשיטת hasNext() . זה גם לא מקבל שום פרמטר. הוא מחזיר את E, כלומר, האלמנט הבא במעבר. אם לאיטרציה או לאוסף האובייקטים לא נותרו עוד אלמנטים לחזור עליהם, אז הוא זורק את ה-NoSuchElementException.ברירת מחדל void remove():שיטה זו גם אינה דורשת פרמטרים. אין סוג החזרה של שיטה זו. הפונקציה העיקרית של שיטה זו היא להסיר את האלמנט האחרון שהוחזר על ידי האיטרטור החוצה דרך האוסף הבסיסי. ניתן לבקש את שיטת הסר () בקושי פעם אחת בכל הקריאה הבאה לשיטה (). אם האיטרטור אינו תומך בפעולת ההסרה, הוא זורק את UnSupportedOperationException. זה גם זורק את IllegalStateException אם השיטה הבאה עדיין לא נקראת.ריק ברירת מחדל עבורEachRemaining(פעולת צרכן):זוהי השיטה היחידה של Java Iterator שלוקחת פרמטר. הוא מקבל פעולה כפרמטר. פעולה אינה אלא דבר שיש לבצע. אין סוג החזרה של השיטה. שיטה זו מבצעת את הפעולה הספציפית על כל הרכיבים השמאליים של האוסף עד שכל הרכיבים נצרך או שהפעולה זורקת חריגה. חריגים שנזרקו על ידי פעולה נמסרים למתקשר. אם הפעולה היא null, אז היא זורקת NullPointerException.

דוגמה של Java Iterator

עכשיו הגיע הזמן להפעיל תוכנית Java כדי להמחיש את היתרון של ממשק Java Iterator. הקוד שלהלן מייצר ArrayList של שמות ערים. לאחר מכן אנו מאתחלים איטרטור תוך שימוש בשיטת iterator () של ArrayList. לאחר מכן, הרשימה עוברת כדי לייצג כל אלמנט.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

תְפוּקָה:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

נקודות לזכור

  • ה-Java Iterator הוא ממשק שנוסף בשפת התכנות Java במסגרת Java 1.2 Collection. זה שייך לחבילת java.util.
  • זהו אחד מסמני ה-Java שמתורגלים לחצות את האובייקטים של מסגרת האוסף.
  • ה-Java Iterator משמש לחזרת הרכיבים של אובייקט האוסף אחד אחד.
  • ה-Java Iterator ידוע גם בתור הסמן האוניברסלי של Java מכיוון שהוא מתאים לכל המחלקות של מסגרת האוסף.
  • ה-Java Iterator תומך גם בפעולות כמו READ והסר.
  • שמות השיטות של מחלקת Iterator מאוד פשוטים וקלים לשימוש בהשוואה לשמות המתודות של Enumeration Iterator.