מתבוסס לאחור דרך רשימה

1. סקירה כללית

במדריך מהיר זה נלמד על דרכים שונות בהן אנו יכולים לחזור אחורה דרך רשימה ב- Java.

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

An איטרטור הוא ממשק במסגרת Java Collections Framework המאפשר לנו לחזור על האלמנטים באוסף. הוא הוצג בג'אווה 1.2 כתחליף ל- ספירה.

3. איטרציה לאחור באמצעות ליבת Java

3.1. הפוך ל לוּלָאָה

היישום הפשוט ביותר הוא להשתמש ב- ל לולאה ל התחל מהרכיב האחרון ברשימה, והורד את האינדקס כשאנחנו מגיעים לתחילת הרשימה:

עבור (int i = list.size (); i--> 0;) {System.out.println (list.get (i)); }

3.2. ListIterator

אנחנו יכולים להשתמש ב- ListIterator לחזור על האלמנטים ברשימה.

מתן גודל הרשימה כאינדקס ל- ListIterator ייתן לנו איטרטר שמצביע על סוף הרשימה:

ListIterator listIterator = list.listIterator (list.size ());

איטרטור זה מאפשר לנו כעת לחצות את הרשימה בכיוון ההפוך:

בעוד (listIterator.hasPrevious ()) {System.out.println (listIterator.previous ()); }

3.3. Collections.reverse ()

ה אוספים מחלקה ב- Java מספקת שיטה סטטית כדי להפוך את סדר האלמנטים ברשימה שצוינה:

Collections.reverse (רשימה);

לאחר מכן ניתן להשתמש ברשימה ההפוכה כדי לחזור אחורה על פני האלמנטים המקוריים:

עבור (פריט מחרוזת: רשימה) {System.out.println (פריט); }

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

4. איטרציה לאחור באמצעות אפאצ'י ReverseListIterator

ה אוספי Apache Commons לספרייה יש נחמד ReverseListIterator מחלקה המאפשרת לנו לגלוש בין האלמנטים ברשימה מבלי להפוך אותה בפועל.

לפני שנתחיל, עלינו לייבא את התלות האחרונות מ Maven Central:

     org.apache.commons commons-collection4 4.1 

אנחנו יכולים ליצור חדש ReverseListIterator על ידי העברת הרשימה המקורית כפרמטר קונסטרוקטור:

ReverseListIterator reverseListIterator = ReverseListIterator חדש (רשימה);

לאחר מכן נוכל להשתמש באיטרטור זה כדי לחצות את הרשימה לאחור:

בעוד (reverseListIterator.hasNext ()) {System.out.println (reverseListIterator.next ()); }

5. איטרציה אחורה באמצעות גויאבה Lists.reverse ()

באופן דומה, ה ספריית גויאבה של גוגל מספקת גם סטטי לַהֲפוֹך() שיטה שלה רשימות מעמד המחזירה תצוגה הפוכה של הרשימה שסופקה.

את הגרסה האחרונה של גויאבה תוכלו למצוא ב- Maven Central:

     com.google.guava גויאבה 25.0 

הפעלת השיטה הסטטית לַהֲפוֹך() על רשימות הכיתה נותנת לנו את הרשימה בצורה הפוכה:

List reversedList = Lists.reverse (רשימה);

לאחר מכן ניתן להשתמש ברשימה ההפוכה כדי לחזור אחורה על הרשימה המקורית:

עבור (פריט מחרוזת: reversedList) {System.out.println (item); }

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

6. מסקנה

במאמר זה, בחנו דרכים שונות לחזור לאחור דרך רשימה ב- Java. עברנו כמה דוגמאות באמצעות Java הליבה, כמו גם באמצעות ספריות פופולריות של צד שלישי.

קוד המקור של מאמר זה ומקרי הבדיקה הרלוונטיים זמינים באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found