Versions Compared

Key

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

...

To løkker med iterator er vist under:

Code Block
languagejava
Iterator it = ...
while (it.hasNext()) {
	Object element = it.next();
	// gjør noe med element her...
}

Generell iterator-løkke.

Code Block
languagejava
Collection<String> strings = Arrays.asList("en", "to", "tre");
Iterator<String> it = strings.iterator();
while (it.hasNext()) {
	String element = it.next();
	// gjør noe med element her...
}

Iterator støtter generics, og da vil next returnere et element med en mer spesifikk type enn Object, f.eks. String som her.

Python sin tilsvarende iterator-klasse har kun én metode og bruker unntak når en når slutten på rekka av elementer:

  • next(): returnerer neste elementer, tar ett steg forover og utløser StopIteration-unntaket når slutten er nådd.

Generell for-løkke

Hvis en datastruktur ikke har en passende iterator, men f.eks. støtter oppslag med en posisjon eller indeks, så kan en falle tilbake på den generelle for-løkka. Dette brukes f.eks. for å løpe gjennom alle tegnene i en String:

...

, slik som vist under til venstre. Du må også bruke den generelle varianten, hvis du skal gå gjennom elementene i en annen rekkefølge enn standard-iteratoren for en datastruktur, f.eks. baklengs eller annenhvert element. Under i midten og til høyre ser du løkker for disse to tilfellene for en Java-liste.

 

Code Block
languagejava
String string = "123";
for (int i = 0; i < string.length(); i++) {
	char c = string.charAt(i);
	// gjør noe med c her...
}

...

Løkke for å gå gjennom tegnene i en String

Code Block
languagejava
List<String> strings = Arrays.asList("en", "to", "tre");
for (int i = strings.size() - 1; i >= 0; i--) {
	String element = strings.get(i);
	// gjør noe med element her...
}

Løkke for å gå gjennom elementene i en List baklengs.

Code Block
languagejava
List<String> strings = Arrays.asList("en", "to", "tre");
for (int i = 0; i < strings.size(); i = i + 2) {
	String element = strings.get(i);
	// gjør noe med element her...
}

Løkke for å gå gjennom annenhvert element i en List

Python sin tilsvarende iterator-klasse har kun én metode og bruker unntak når en når slutten på rekka av elementer:

...

.

Bruk av for-each på egne datastrukturer

...