Home > Informatik > Einführung in die OOP > 7. ArrayList, Teil 1> 7.1 Sammlungen

7.1 Sammlungen

Teil 1 - Teil 2 - Teil 3 - Teil 4 - Teil 5 - Teil 6 - Teil 7

Sammlungen in Java

In der Programmierung begegnet uns häufig das Konzept der Sammlung: Eine Gruppe von Objekten, die gemeinsam verwaltet werden. Während in Folge 4 schon die Arrays als strukturierte "Datenbehälter" mit fester Länge behandelt wurden, gehen wir jetzt einen Schritt weiter. Denn oft reicht ein einfaches Array nicht aus - zum Beispiel, wenn die Anzahl der Objekte zur Laufzeit nicht bekannt ist oder sich ständig ändert.

Die Verwaltung einer Bibliothek ist ein typisches Beispiel für den Einsatz von Sammlungen. Anfangs hat man nur ein paar Bücher zu verwalten, vielleicht 20 oder 30. Im Laufe der Jahre kommen immer mehr dazu, und die Sammlung wächst beständig.

Ein anderes Beispiel ist ein Deutsch-Englisch-Lexikon, in dem sowohl nach englischen Übersetzungen für deutsche Begriffe wie auch umgekehrt nach deutschen Übersetzungen für englische Worte gesucht werden kann.

Die wichtigste und auch einfachste Sammlungsklasse ist ArrayList. In einem Objekt der Klasse ArrayList kann man zwar keine primitiven Daten wie int- oder double-Zahlen speichern, wohl aber Objekte von Klassen. Im Gegensatz zu einem Array hat eine Arrayliste keine von vornherein festgelegte Obergrenze. Eine Arrayliste kann bei Bedarf wachsen, man spricht hier von einer dynamischen Datenstruktur - im Gegensatz zu statischen Datenstrukturen wie Arrays.

7.1.1 Wichtige Sammlungsklassen in Java

  • ArrayList: lineare Liste von Objekten
  • LinkedList: wie ArrayList, hat aber andere Stärken: Einfügen und Löschen in der Nähe eines gegebenen Elements ist günstig, der Zugriff per Index ist aber langsam.
  • HashSet: dient zum Verwalten von Mengen, keine Duplikate, keine feste Reihenfolge
  • HashMap: dient zum Verwalten von Wertepaaren zum Beispiel für ein Deutsch-Englisch Wörterbuch.

Kurze Erläuterung

In diesem Kurs gehen wir hauptsächlich auf die wichtige Klasse ArrayList ein. Am Ende betrachten wir aber auch noch kurz die Klassen LinkedList und HashMap.

Beschreibung siehe folgenden Text

Vier wichtige Sammlungsklassen in Java
Autor: Ulrich Helmich 04/2026, Lizenz: Public domain

Diese Zeichnung stellt die vier wichtigen Sammlungsklassen graphisch in stark vereinfachter Form dar.

ArrayList: Basiert intern auf einem Array. Dieses Array ist zunächst fest (statisch), wird aber bei Bedarf automatisch vergrößert, sodass die Liste nach außen hin "dynamisch" erscheint.

LinkedList: ist Ihnen aus dem Informatik-Unterricht vielleicht als "einfach verkettete Liste" bekannt. Eine echte LinkedList ist in den aktuellen Java-Versionen allerdings doppelt verkettet.

HashMap: ein Array, dessen Elemente als Buckets bezeichnet werden. Wenn mehr als ein Element in einem Bucket gespeichert werden soll, verweist der Bucket auf eine einfach verkettete Liste von Elementen (im Prinzip also ähnlich wie eine LinkedList aufgebaut). Wird eine solche Liste zu lang, wird sie (seit Java 8) in einen balancierten binären Suchbaum umgewandelt.

HashSet: Eine HashMap, bei der jedes Element nur einmal vorkommen darf, wie bei einer richtigen Menge.

Seitenanfang
Weiter mit der Erzeugung eines ArrayList-Objekts...