Objektsammlungen (ArrayList)
Java bringt zahlreiche Bibliotheksklassen mit, die zwar streng genommen nicht Teil der Sprache sind, aber so eng mit dem Sprachkern verbunden sind, dass diese Genze teilweise verschwimmt.
In diesem Abschnitt wollen wir uns die Bibliotheksklasse ArrayList()
anschauen, die uns in vielen Aspekten an unsere zuvor selbst implementierte verkettete Liste erinnern wird.
Die Klasse ArrayList() stellt eine einfache Art der Objektsammlung dar: Eine unsortierte, aber geordnete Liste flexibler Größe1)
Kapitel 4 im Buch, S. 131-181. Den für die Übungen dieses Kapitels nötigen Beispielcode findest du hier:
Zentrale Konzepte
- Sammlung: Sammlungsobjekte sind Objekte, die eine beliebige Anzahl anderer Objekte enthalten können.
- Schleife: Eine Schliefe wird verwendet, um einen Block von Anweisungen wiederholt auszuführen.
- Iterator: Ein Iterator ist ein Objekt, mit dem über alle Elemente einer Sammlung iteriert werden kann.
- null:
null
hat die Bedeutung "kein Objekt". Eine Objektvariable mit dem Wertnull
verweist nicht auf ein konkretes Objekt.
Aufgaben zur Musiksammlung-v1
Untersuche das Projekt Musiksammlung-v1: https://codeberg.org/qg-info-unterricht/jlmb-musiksammlung-v1
(A1)
- Öffne das Projekt und erzeuge ein Objekt der Klasse Musiksammlung.
- Füge einige Dateinamen ein.
- Was macht die Methode
gibAnzahlDateien
? - Wie ist die Methode
dateiAusgeben
aufzurufen? Welche Funktion hat der Parameter, der zu übergeben ist? Welche Werte darf er annehmen?
(A2)
Erzeuge ein neues Objekt der Klasse Musiksammlung und rufe dann sofort die Methode entferneDatei(0)
auf. Erhältst du eine Fehlermeldung? Würdest du erwarten, dass ein Fehler auftritt?
(A3)
Erzeuge ein neues Musiksammlungsobjekt, füge zwei Titel ein und betrachte den Zustand deiner Sammlung, indem du mit der Methode dateiAusgeben()
für die verschiedenen Indizes alle gespeicherten Titel betrachtest. Lösche den Titel mit dem Index 0 - was zeigt dateiAusgeben(0)
jetzt an? Was kannst du daraus folgern?
Die for-each Schleife
Um die Elemente einer Array-List bequem sequenziell verarbeiten zu können, bietet Java die for-each-Schleife:
for (Elementtyp element: sammlung) { }
Für unsere Musiksammlung könnte das so aussehen:
for (String dateiname: dateien) { // tu etwas mit dateiname }
(A4)
- Implementiere eine Methode
gibAlleDateienAus()
mit Hilfe derfor-each
Schleife. - Implementiere eine Methode
gibAlleDateienAusF()
mit Hilfe einerfor
-Schleife. - Implementiere eine Methode
gibAlleDateienAusW()
mit Hilfe einerwhile
-Schleife.
(A5)
In einer Klasse Spielleiter soll mit Hilfe einer ArrayList eine Spielerinnen-Liste verwaltet werden. Implementiere diese Funktionalität in folgendem BlueJ-Projekt https://codeberg.org/qg-info-unterricht/bluej-spielerliste.
Lösungen zu den Aufgaben im Buch
Material
Filename | Filesize | Last modified |
---|---|---|
aa_jlmb_kap4_ii-markervariable.odp | 17.7 KiB | 06.10.2021 15:04 |
aa_jlmb_kap4_ii-markervariable.pdf | 46.3 KiB | 06.10.2021 15:04 |
aa_jlmb_kap4_ii.odp | 18.8 KiB | 06.10.2021 15:04 |
aa_jlmb_kap4_ii.pdf | 29.2 KiB | 06.10.2021 15:04 |
kap04_foreach.odp | 1.2 MiB | 18.10.2021 19:17 |
kap04_foreach.pdf | 89.5 KiB | 18.10.2021 19:17 |
kap04_iterator.odp | 1.2 MiB | 18.10.2021 19:59 |
kap04_iterator.pdf | 154.1 KiB | 18.10.2021 19:59 |
kapitel4.odp | 4.0 MiB | 06.10.2021 15:04 |
kapitel4.pdf | 743.3 KiB | 06.10.2021 15:04 |