2.4 KiB
Debugging - StringMergingIterator-oppgave
Oppgaven handler om feilsøking ("debugging") av en Iterator-implementasjon ved bruk av debuggeren i VS Code.
Les først denne artikkelen om bruk av debugger i VS Code om du ikke er kjent med dette: Kjøring av kode og debugging i VS Code
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.
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()- returnerertruedersom iteratoren har flere verdier,falsedersom det ikke er flere verdier.String next()- returnerer den neste verdien fra iteratoren, eller utløser etNoSuchElementExceptiondersom 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 VS Code. 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.
Programmet du skal feilsøke er StringMergingIteratorProgram, og du finner koden for denne i oving5/debugging/StringMergingIteratorProgram.java. Koden for StringMergingIterator finner du i oving5/debugging/StringMergingIterator.java.