Java Collection Framework
Interfaces
Willemers Informatik-Ecke
Die Grundlage des Java Collection Frameworks sind einige Interfaces, die das typische Verhalten der Datencontainer vorgeben. Das Framework hat zunächst zwei Interfaces, Collection und Map. Während Collection Datenorganisationen wie Listen, Mengen und Schlangen umfasst, ist Map die Basis für assoziative Speicher, deren Inhalte über Schlüssel zugegriffen werden. So wie der Mensch auf ein Stichwort hin alle Daten des Themas assoziiert, so ermittelt ein assoziativer Speicher über einen Schlüssel alle Daten des gespeicherten Elements.

Interface: Collection und Iterator

Von Collection erben List, Queue und Set beispielsweise die Methode add.

Iterator

Jeder Container hat seinen eigenen Iterator, der zunächst vor dem ersten Element steht. Er wird über den Aufruf der Methode iterator() erzeugt werden. Der Iterator hat eigene Methoden.

Das Interface List

Das Interface List erbt die Methoden von Collection und fügt neue hinzu. List fügt einer Collection vor allem hinzu, dass die Elemente in einer Reihenfolge abgelegt werden. Darum ist es möglich über eine Positionsnummer auf die Elemente zuzugreifen und nicht nur per Iterator.

Das Interface Queue

Dieses Interface bietet die Methoden für eine Warteschlange.

Das Interface Set

Das Set ist ein Container dessen Elemente nur einmal vorkommen. In diesem Sinne entsprechen ein Set der mathematischen Menge. Die Reihenfolge der Elemente ist zunächst nicht interessant. Auch ein Set liefert einen Interator und auch hier liefert die Methode toArray ein Array, das alle Elemente eines Sets enthält.

Das Interface Map

Maps eignen sich vor allem zum Auffinden von Elementen über einen Schlüssel. Schlüssel und Element werden separat als Parameter übergeben. Der Schlüssel muss eindeutig sein. Doppelungen sind also nicht erlaubt. Man könnte eine Map als Modellierung einer mathematischen Funktion betrachten. Die Methode keySet() dient dazu, eine Map wie einen Set per Iterator zu bearbeiten. Sie liefert den View auf die Schlüssel in Form eines Sets.

Maps werden als HashMap, als TreeMap oder als LinkedHashMap implementiert. Der Container Hashtable ist keine Implemenation von Map, sondern sollte durch HashMap abgelöst werden.