Collections-Framework

Das Java-Collections-Framework ist eine hierarisch organisierte Zusammenfassung von Collections. Diese werden auch als Container bezeichnet und kennzeichnen Datenstrukturen, die eine Gruppe von Daten in einer Einheit integrieren. Die Daten - ebenso die Objekte - der Collections werden auch als Elemente bezeichnet, wobei auf diese nur mit den entsprechenden Methoden zugegriffen werden darf. Hinsichtlich der Speicherung und Verwaltung von großen Datenmengen stehen mit dem Collections-Framework umfangreiche Funktionalitäten und Möglichkeiten der Anwendung zur Verfügung. Ab der Version 1.5 von Java (Java 5) unterstützen die Collections auch generische Datentypen.


Das Design des Collection-Frameworks

Das Design des Collections-Frameworks definiert eine Hierarchie von Interfaces, die im Package java.util zur Verwaltung der Datenstrukturen bereitgestellt werden. Die verschiedenen Interfaces unterstützen jeweils unterschiedliche Datenstrukturen. Ein Interface stellt nur die Schnittstelle für den Zugriff auf eine Datenstruktur zur Verfügung. Wie die Daten letztendlich gespeichert werden, wird durch die konkrete Implementierung des Interfaces festgelegt. Dabei implementieren jeweils mehrere Klassen diese Interfaces.

Interfaces des Collections-Framework

Interfaces des Collections-Framework

Die Abbildung verdeutlicht den grundlegenden Aufbau des Collections-Frameworks mit einigen Interfaces. Die Namen der Klassen beinhalten den Namen des implementierten Interfaces. So implementiert beispielsweise die Klasse ArrayList das Interface List. Damit ist am Namen der Klasse der entsprechende Grundtyp zuzuordnen.

Während die Interfaces List, Set und Queue vom Basis-Interface Collection abgeleitet sind, steht das Interface Map autark an der Spitze der Hierarchie. Nachfolgend eine kurze Beschreibung der Interfaces:

Collection. Basis-Interface, das grundlegende Operationen (Methoden) zur Arbeit mit Collections zur Verfügung stellt.

List. Unterstützt beliebig große Liste von Elementen unterschiedlichen Typs, auf die sequentiell oder wahlfrei zugegriffen werden kann.

Set. Eine Menge von Elementen, auf die mit entsprechenden Operationen zugegriffen werden kann.

Queue. Häufig als Warteschlange verwendete Liste, auf die nur sequentiell (z.B. First In First Out) zugegriffen werden kann. Ein wahlfreier Zugriff ist nicht erlaubt.

Deque. Deque (double ended queue) beschreibt eine spezielle Form der Warteschlange, die es gestattet, sowohl am Anfang als auch am Ende Elemente hinzu-zufügen oder zu entfernen.

Map. Dient zur Implementierung von Schlüsselwert-paaren, also einer Menge zusammengehöriger Objektpaare.

Da Collections nicht synchronisiert sind, kann es zu inkonsistenten Daten und zu Programmfehlern kommen, wenn mehrere gleichzeitig ausgeführte Programmmodule ( Threads) auf dieselbe Collection zugreifen. Der Zugriff auf die Collection liegt dabei in der Verantwortung der Software-Entwicklung.

Mit dem Collections-Framework steht eine umfangreiche Bibliothek von Funktionalitäten zur Speicherung und Verwaltung von großen Datenmengen zur Verfügung. Die flexible Schnittstelle zur Gestaltung bei der Übergabe von Collection-Objekten wird durch deren Vererbungshierarchie ermöglicht. Mit Bezug auf das Basis-Interface Collection lassen sich einfach konkrete Datenstrukturen ändern, ohne dass die operierende Methode ebenfalls geändert werden muss.

Informationen zum Artikel
Deutsch: Collections-Framework
Englisch: collections framework
Veröffentlicht: 03.11.2013
Wörter: 436
Tags: #Java
Links: Bibliothek, Container, Daten, Datentyp, FIFO (first in first out)