Sammlungen, zusammengefasst im Java Collections Framework stellen eine Ansammlung generischer Interfaces dar, die Datentypen definieren, die es erlauben, eine Menge an Objekten als Einheit zu behandeln. Die Einträge stellen hierbei Referenzen auf die eigentlichen Objekte dar.
Das Wurzel-Interface Collection erweitert das Interface java.lang.Iterable<E>, das es erlaubt, eine Collection zu durchwandern und auf deren einzelne Elemente zuzugreifen.
Einen Überblick über die Haupt-Interfaces des Collection-Framework geben das u.a. Diagramm und die nachfolgende Tabelle.

Zusammenhänge des Collections Core Interface

List<E> Geordnete Abfolge von Elementen, die auch doppelt vorhanden sein dürfen und die eine definierten Position innerhalb der List einnehmen.
Queue<E> Abfolge von Elementen, die nach dem FIFO-Prinzip (First-In, First-Out) gehandhabt werden.
Deque<E> Abfolge von Elementen, die das Einfügen und Entfernen von Elementen an beiden Enden ermöglicht.
Set<E> Sammlung von Elementen, die der mathematischen Menge entspricht und somit keine doppelten Elemente enthalten darf.
SortedSet<E> Ein Set, das die Elemente in natürlicher Ordnung sortiert enthält.
NavigableSet<E> Erweitert und ersetzt SortedSet. NavigableSet stellt Methoden bereit, die den Eintrag mit der größten Ähnlichkeit zu einem gesuchten Objekt ermitteln.
Map<K,V> Abfolge von Elementen, bei denen je ein Schlüssel (Key) einem Wert (Value) zugewiesen ist. Der Schlüssel kann nicht doppelt vorhanden sein.
SortedMap<E> Eine Map, deren Elemente in natürlicher Ordnung der Keys sortiert sind.
NavigableMap<E> Erweitert und ersetzt SortedMap. Sie stellt Methoden bereit, die den Eintrag mit der größten Ähnlichkeit zu einem gesuchten Objekt ermitteln.

Collections durchlaufen

Collections können auf zwei Weisen durchlaufen werden, die ihre jeweiligen Vor- und Nachteile besitzen.

Basis-Operationen

Die Basis-Operationen aller Collections dienen der Behandlung der Inhalte:

boolean collA.contains(Object obj) Liefert true wenn obj in collA enthalten ist.
boolean collA.add(Object obj) Liefert true wenn obj erfolgreich in collA eingefügt wurde.
boolean collA.remove(Object obj) Liefert true wenn obj erfolgreich aus collA entfernt wurde.
boolean collA.isEmpty() Liefert true wenn collA keine Schlüssel enthält.
int collA.size() Liefert die Anzahl der Einträge in collA.

Bulk-Operationen

Bulk-Operationen führen Vorgänge auf Collections als ganzes aus.

boolean collA.containsAll(collB) Liefert true wenn alle Einträge aus collB in collA enthalten sind.
boolean collA.addAll(collB) Fügt die Menge aller Einträge aus collB in collA ein.
boolean collA.removeAll(collB) Entfernt die Menge aller Einträge aus collB aus collA.
boolean collA.retainAll(collB) Liefert die Schnittmenge aus collB und collA als collA.
void collA.clear() Entfernt alle Einträge aus collA.