Damit jede Firma eigene Varianten derselben Standardklassen entwickelt, stellt jede Programmiersprache eine Bibliothek mit Referenzimplementierungen der gängigsten Klassen zur Verfügung. Bei Java ist dies die Java Standard Libary.
Zum strukturierten Speichern gleichartiger Daten gibt es innerhalb dieser Library das Java Collections Framework, dessen wichtigste Klassen im Folgenden dargestellt werden.
(Die obige Darstellung ist angelehnt an ein Diagramm der Hochschule Bielefeld.)
Zu den obigen Klassen/Interfaces:
LinkedList und ArrayList unterscheiden sich vor allem in der Zugriffszeit ihrer Methoden. LinkedList basiert auf einer verketteten Liste. Sie ermöglicht Einfügen/Löschen in konstanter Zeit, ist aber langsam beim Zugriff auf's i-te Element und verbraucht zusätzlichen Speicherplatz zur Speicherung der verketteten Knoten-Objekte. ArrayList basiert auf einem Array. Ist es zu klein, wir ein größeres reserviert und umkopiert. ArrayList ist schnell beim Zugriff aufs i-te Element und meist schnell beim Hinten-Anfügen, jedoch langsam beim Einfügen und Löschen von Elementen mittendrin.contains und containsAll, die in konstanter Zeit ausgeführt werden. Diese Methoden haben bei der LinkedList und der ArrayList Ausführungszeiten O(n).
Die Klasse Collections stellt statische Methoden zum Sortieren und zum zufälligen Mischen der Elemente einer Collection zur Verfügung.
Die Klasse HashMap ist daraufhin optimiert, in konstanter Zeit zu einem gegebenen Key-Objekt das entsprechende Value-Objekt zu finden.
Schreiben Sie für die folgenden Szenarien jeweils eine Klasse zur Datenspeicherung und zwei JUnit-Testfälle, die die korrekte Speicherung/Abfrage der Daten verifizieren.
Schulklasse speichert die Bezeichnung und den Namen der Klassenleitung. Die Klasse Klassenverzeichnis soll Methoden zum Speichern von Schulklassen, zur Suche einer Klasse (bei gegebener Bezeichnung) und zur Ausgabe aller Klassen besitzen.Telefonbucheintrag besteht aus Telefonnummer, Rufname, Familienname und Anschrift. Die Klasse Telefonbuch soll Methoden zum Speichern von Telefonbucheinträgen und zum Suchen aller Einträge zu einem Familiennamen besitzen.