Oppgaven handler om feilsøking ("debugging") av en Iterator-implementasjon ved bruk av debuggeren i Eclipse.
Les først denne artikkelen om bruk av debugger i Eclipse om du ikke er kjent med dette: Bruk av debuggeren i Eclipse
Klassen StringMergingIterator implementerer grensesnittet Iterator<String>, og leverer annenhver verdi fra to andre iteratorer av typen Iterator<String>. Denne iteratoren fletter altså verdiene fra to andre gitte iteratorer, og er altså en meta-iterator. Meta-iteratorer er iteratorer som bruker andre iteratorer som datakilder. Se lysark om teknikken: Forelesningslysark om meta-iteratorer
StringMergingIterator har følgende konstruktør:
- StringMergingIterator(Iterator<String> first, Iterator<String> second)
Siden klassen implementerer Iterator<String> har den også følgende metoder:
- boolean hasNext() - returnerer true dersom iteratoren har flere verdier, false dersom det ikke er flere verdier.
- String next() - returnerer den neste verdien fra iteratoren, eller utløser et NoSuchElementException dersom iteratoren er tom.
I denne oppgaven blir en implementasjon av StringMergingIterator sammen med et testprogram utdelt, men i implementasjonen av klassen har vi plantet en eller flere feil. Målet for oppgaven er å finne feilene i implementasjonen ved hjelp av debuggeren i Eclipse. Kjør programklassen i debug-modus, og bruk dette til å finne ut hvor StringMergeIterator gjør feil. Dersom programklassen lykkes med å få en flettet strøm med verdier har du funnet alle feilene.