מתבוסס לאחור דרך רשימה
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.