faecher:informatik:oberstufe:bluej:kap04:start

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 Wert null verweist nicht auf ein konkretes Objekt.

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?

Um die Elemente einer Array-List bequem sequenziell verarbeiten zu können, bietet Java die for-each-Schleife:

for (Elementtyp element: sammlung) {
 
}

2)

Für unsere Musiksammlung könnte das so aussehen:

for (String dateiname: dateien) {
 
  // tu etwas mit dateiname
 
}

(A4)

  • Implementiere eine Methode gibAlleDateienAus() mit Hilfe der for-each Schleife.
  • Implementiere eine Methode gibAlleDateienAusF() mit Hilfe einer for-Schleife.
  • Implementiere eine Methode gibAlleDateienAusW() mit Hilfe einer while-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.

FilenameFilesizeLast modified
aa_jlmb_kap4_ii-markervariable.odp17.7 KiB06.10.2021 15:04
aa_jlmb_kap4_ii-markervariable.pdf46.3 KiB06.10.2021 15:04
aa_jlmb_kap4_ii.odp18.8 KiB06.10.2021 15:04
aa_jlmb_kap4_ii.pdf29.2 KiB06.10.2021 15:04
kap04_foreach.odp1.2 MiB18.10.2021 19:17
kap04_foreach.pdf89.5 KiB18.10.2021 19:17
kap04_iterator.odp1.2 MiB18.10.2021 19:59
kap04_iterator.pdf154.1 KiB18.10.2021 19:59
kapitel4.odp4.0 MiB06.10.2021 15:04
kapitel4.pdf743.3 KiB06.10.2021 15:04

1)
Das erinnert sehr an die verkette Liste, nicht wahr…
2)
ArrayList ist eine Unterklasse von Collection, also eine Sammlung
  • faecher/informatik/oberstufe/bluej/kap04/start.txt
  • Zuletzt geändert: 22.10.2024 07:08
  • von Frank Schiebel