סיכום Iterator

מנהלים: TA_nimrod, TA_Igor, TA_Adi

שלח תגובה
nitzan86
הודעות: 9
הצטרף: 00:20 31/10/2009

סיכום Iterator

שליחה על ידי nitzan86 » 16:50 16/01/2010

טוב, זה לא באמת סיכום, סתם משהו שכתבתי ועזר לי להבין קצת יותר מה קורה בנושא הזה (שאותי אישית מאוד מבלבל)

אם זה יכול לעזור למישהו - שיהיה בכיף... אם זה רק מבלבל עוד יותר - תחזרו לתרגל אלגברה / תעברו לתרגל חדו"א...

כשאנחנו רוצים שאפשר יהיה לעבור על האיברים במבנה נתונים כלשהו (כמו שלולאת for עוברת על איברי מערך), המבנה הזה צריך לממד את הממשק Iterable
למשל - public class BinarySearchTree implements Iterable
בתוך המבנה הזה, צריך ליישם את השיטה () public Iterator iterator שמחזירה לנו איטרטור מסוג מסוים (למשל כמו שראינו בהרצאה האחרונה - איטרטור של pre-order/ post-order / in-order)
אחרי כל זה, בונים את המחלקה ששמה כשם סוג האיטרטור
למשל - public class InOrderIterator implements Iterator
מחלקה זו צריכה לממש את 3 השיטות: hasNext - מחזירה ערך בוליאני - האם יש עוד איבר במבנה הנתונים שעדיין לא עברנו עליו, next - מחזירה את האיבר הבא, ו- remove שבדר"כ סתם זורקת exception כי צוות הקורס גם באס"ק

שימוש באיטרטור במבנה נתונים המממש Iterable (נניח שיש משתנה tree המצביע למבנה נתונים שהוא Iterable):

קוד: בחירת הכל

Iterator it = tree.iterator();

while (it.hasNext()) {
     Object curItem = it.next();
     // Do casting of curItem to our Data-Type (for example Integer),
     // and do the operation on the item
     // ...
}
בהצלחה...

yairyog
הודעות: 39
הצטרף: 08:34 12/11/2009

Re: סיכום Iterator

שליחה על ידי yairyog » 18:03 20/01/2010

תודה על התקציר 8)

שלח תגובה

חזור אל “- מבוא למדעי המחשב 2010”