TDT4100/oppgavetekster/oving5/StringMergingIterator.md

2.1 KiB

Debugging - StringMergingIterator-oppgave

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, og leverer annenhver verdi fra to andre iteratorer av typen Iterator. 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 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 StringMergingIteratorProgram 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.

Merk at du ikke skal gjøre noen endringer StringMergingIteratorProgram, men bruke dette programmet til å teste logikken i StringMergingIterator.