nedobre si to pochopil...
iterator je design pattern, ktorý umožňuje prechádzať cez prvky kolekcie (zoznamu, poľa, etc)...
všeobecne ten design pattern funguje tak, že má metódy movenext a getcurrent... kde potom pomocou while vieš prejsť cez všetky prvky nejak takto:
v prípade javy a .netu (a ďalších) sa iterovanie robí cez konštrukciu foreach...
v jave je zápis pre foreach konštrukciu nasledovný:
v .net to funguje cez kľúčové slovo foreach
v tomto konkrétnom prípade vy máte triedu, ktorá má jednu z privátnych premenných list (ArrayList)... tento list už má implementovaný pattern iterator (ak pozriete v dokumentáciu ku jave, tak zistíte, že jedna z metód, ktorú ArrayList má je iterator(), ktorý vráti objekt type Iterator<E>)... tento iterator umožňuje iterovanie cez prvky arraylistu pomocou foreach konštrukcie (samozrejme, ide to aj cez while, ako som to popísal vyššie, ale kto by to robil? keď cez foreach je to jednoduchšie... zvyčajne...)
takže to, čo vy potrebujete urobiť je, že zverejníte tento iterator arraylistu predmetov v Backpacku aj pre Backpack samotný...
kompletné riešenie by som vám tu asi napísať nemal... ale aspoň náznak urobím... v triede Backpack urobíte metódu, ktorá bude vyzerať takto:
telo si doplňte sami... malo by to byť pochopiteľné z toho, čo som napísal...
snáď
a hlavne tá návratová hodnota by mohla byť slušná pomôcka k tomu, čo máte urobiť...
iterator je design pattern, ktorý umožňuje prechádzať cez prvky kolekcie (zoznamu, poľa, etc)...
všeobecne ten design pattern funguje tak, že má metódy movenext a getcurrent... kde potom pomocou while vieš prejsť cez všetky prvky nejak takto:
Code [Select]
while (list.movenext() != null) {
process(list.getcurrent());
}
v prípade javy a .netu (a ďalších) sa iterovanie robí cez konštrukciu foreach...
v jave je zápis pre foreach konštrukciu nasledovný:
Code [Select]
for (Type item : list) {
...
}
v .net to funguje cez kľúčové slovo foreach
v tomto konkrétnom prípade vy máte triedu, ktorá má jednu z privátnych premenných list (ArrayList)... tento list už má implementovaný pattern iterator (ak pozriete v dokumentáciu ku jave, tak zistíte, že jedna z metód, ktorú ArrayList má je iterator(), ktorý vráti objekt type Iterator<E>)... tento iterator umožňuje iterovanie cez prvky arraylistu pomocou foreach konštrukcie (samozrejme, ide to aj cez while, ako som to popísal vyššie, ale kto by to robil? keď cez foreach je to jednoduchšie... zvyčajne...)
takže to, čo vy potrebujete urobiť je, že zverejníte tento iterator arraylistu predmetov v Backpacku aj pre Backpack samotný...
kompletné riešenie by som vám tu asi napísať nemal... ale aspoň náznak urobím... v triede Backpack urobíte metódu, ktorá bude vyzerať takto:
Code [Select]
public Iterator<Item> iterator() {
...
}
telo si doplňte sami... malo by to byť pochopiteľné z toho, čo som napísal...


a hlavne tá návratová hodnota by mohla byť slušná pomôcka k tomu, čo máte urobiť...
