Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

som returnerer et Iterator<String>-objekt som skal kunne spørres om neste streng i rutenettet for iterasjon. Du står fritt til å velge hvordan metodene definert av grensesnittet skal implementeres. To mulige løsninger for representasjon av rutenettet er en enkel ArrayList<String> eller en dobbel ArrayList<ArrayList<String>> der den ytre listen er radene og de indre kolonnene. Wikisiden om Todimensjonale todimensjonale matriser kan være lurt å ta en titt på før du går i gang. Dersom getElement(int, int)- eller setElement(int, int, String)-metodene kalles med ulovlige verdier for rad eller kolonne (i.e. de er utenfor rutenettet) skal en IllegalArgumentException kastes. 

...

Iterator-objektet som returneres av iterator()-metoden i StringGridImpl-klassen itererer over StringGridImpl-klassen på én bestemt måte. For å kunne velge om en vil iterere over rutenettet bortover først (rowMajor=true) eller nedover først (rowMajor=false) skal du nå lage en StringGridIterator-klasse som implementerer grensesnittet Iterator<String>. Den må støtte følgende konstruktør / metoder: 

  • StringGridIterator(StringGrid, boolean) - konstruktør som tar inn StringGrid-objektet som StringGridIterator-klassen skal iterere over i tillegg til en boolsk verdi som angir om iterasjonen skal være bortover først (rowMajor=true) eller nedover først (rowMajor=false).
  • boolean hasNext() - returnerer true så lenge det er flere strenger igjen i StringGrid-objektet som ikke enda er blitt iterert over (i.e. sjekk om du har kommet til siste rute i rutenettet).

  • String next() - returnerer den neste strengen i rutenettet. Hvilken streng som er den neste til å bli returnert avhenger av hvordan rutenettet skal itereres (i.e. om rowMajor=true eller rowMajor=false).

  • void remove() - denne metoden skal bare kaste et unntak av typen UnsupportedOperationException siden det ikke skal være mulig å fjerne strenger fra rutenettet.

...