Zum Hauptinhalt springen

Java Collections Framework

Das Java Collections Framework stellt Schnittstellen und Klassen für Datensammlungen bereit. Alle Collections-Typen befinden sich im Paket java.util. Die drei Grundformen sind List<E>, Set<E> und Queue<E>, zu denen jeweils konkrete Implementierungen existieren.

Eine Liste ist eine geordnete Folge von Objekten, die doppelte Elemente enthalten darf. Der Zugriff auf die Elemente erfolgt über den Index oder sequentiell.

Konkrete Implementierungen der Schnittstelle List<E> stellen die Klassen ArrayList<E> und LinkedList<E> (siehe auch Feldbasierte Listen und Listen) dar.

Iteratoren

Ein Iterator ermöglicht den sequentiellen Zugriff auf die Elemente einer Datensammlung, ohne die interne Struktur kennen zu müssen. Die Schnittstelle Iterator<E> bietet die Methoden boolean hasNext(), E next() und void remove().

MainClass.java
public class MainClass {

public static void main(String[] args) {

List<String> names = List.of("Hans", "Peter", "Lisa");

Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name);
}

}

}

Auch die bereits bekannte for-each-Schleife basiert intern auf Iteratoren. Beim Kompilieren wird sie automatisch in eine Iterator-Schleife umgewandelt. Die ausführliche Schreibweise ist daher gleichwertig zur Kurzschreibweise.

MainClass.java
public class MainClass {

public static void main(String[] args) {

List<String> names = List.of("Hans", "Peter", "Lisa");

// Ausführliche Schreibweise mit Iterator
for (Iterator<String> iterator = names.iterator(); iterator.hasNext();) {
String name = iterator.next();
System.out.println(name);
}

// Kurzschreibweise mit for-each
for (String name : names) {
System.out.println(name);
}

}

}