Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • boolean hasNext() - returnerer true hvis det er flere elementer igjen av sekvensen av elementer og false ellers. Denne metoden kan kalles mange ganger uten at det endrer hvor langt en er kommet.
  • <type> next() - returnerer neste element i sekvensen og tar implisitt et steg videre. Returtypen er typen som Iterator-implementasjonen er spesialisert til. Denne metoden kan bør bare kalles dersom hasNext() returnerer truehvis den kalles når hasNext() returnerer false vil den utløse NoSuchElementException.
  • void remove() - fjerner det siste elementet som ble returnert av next() fra den underliggende data-kilden, dersom den støtter dette. Denne metoden er frivillig å implementere, og dersom den ikke er støttet så skal den utløse UnsupportedOperationException.

...

Klasse som bruker ArrayListKlasse som også implementerer IterableKlassediagramfor-each-løkke
Code Block
languagejava
public class Library {

	private Collection<Book> books = new ArrayList<Book>();

	public void addBook(Book book) {
		books.add(book);
	}
	public void removeBook(Book book) {
		books.remove(book);
	}
}
Code Block
languagejava
public class Library implements Iterable<Book> {

	... books-feltet og add- og remove-metodene her ...

	// fra Iterable<Book>
	public Iterator<Book> iterator() {
		return books.iterator();
	}
}

 

 

PlantUML Macro
interface "Iterable<Book>" as iterable {
	Iterator<Book> iterator()
}
class Library
class Book

iterable <|.. Library
Library "1" *.right.. "n" Book: books 
Code Block
// lag en Library-instans
Library library = new Library();
// legg til noen bøker
library.addBook(new Book(...));
library.addBook(new Book(...));

// gå gjennom bøkene
for (Book book : library) {
	// gjør noe med book her
	...
}

...