Video-Tutorial

Für den besten Lerneffekt laden Sie sich das Szenario unter dem Video herunter und machen direkt mit.

Die Übungen hier behandeln grundlegende Methoden der ArrayList, wie sie in Folge 51 - Methoden der ArrayList behandelt wurden:

  • get(...)
  • indexOf(...)
  • size()
  • add(...) (auch mit spezifiziertem Indexwert als Parameter)
  • remove(...)
  • foreach-Schleife

und eine schöne Wiederholung der Setter und Getter-Problematik.

Wie immer werden im Video alle Lösungen ausführlich erklärt.

Zugehöriges Greenfoot-Szenario

Dieses Szenario kann nur mit Greenfoot 3.1 oder höher geöffnet werden. Es entspricht der Ausgangssituation im Videotutorial, Sie können mit ihm die im Video gezeigten Schritte nachvollziehen und ausprobieren.

Falls Sie nur Greenfoot 3.0.x verwenden können, können Sie hier ein ZIP-Archiv mit allen Szenarien für Greenfoot 3.0.x herunterladen. Stand der Szenarien ist Februar 2017, hier wurde seither nichts mehr aktualisiert etc. _greenfoot304_szenarien_ALT.zip (~12 MB)

Download des Szenarios: greenfoot3_520_arraylist_methoden_uebungen.zip

(letzte Synchronisation des ZIP-Archivs: 02.08.2017)

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: Greenfoot 3: Methoden der ArrayList*****


Benutzen Sie das Szenario greenfoot3_520_arraylistmethoden_uebungen.zip, das Sie auf www.informatikzentrale.de herunterladen können (dort übrigens auch die Lösungen zu diesen Übungen).
Eine Einführung in die hier verwendeten Methoden gibt es in Folge 51 auf www.informatikzentrale.de .




Vorarbeit 1:
Legen Sie in der Klasse Sammler ein Attribut apfelliste:ArrayList<Apfel> an.




Vorarbeit 2:
Schreiben Sie in der Klasse Apfel Getter und Setter für die Attribute gewicht und istMonsterapfel.
Aktivieren Sie anschließend in der MyWorld-Klasse die auskommentierte Zeile monsterapfel.setMonsterapfel ...




Aufgabe 1 / Klasse Sammler - Methode apfelEinladen()

Der Apfel, den das Sammler-Objekt gerade berührt, wird der Liste apfelliste hinzugefügt und von der Welt entfernt.
Ergänzungsaufgabe:
Erweitern Sie die Methode so, dass zuerst überprüft wird, ob das berührte Apfelobjekt ein Monsterapfel ist. Wenn das der Fall ist, wird dieses Objekt an die erste Stelle der Liste gesetzt (also an Position 0). Das machen Sie mit add(indexwert:int, objekt:Object) - der Rest der Liste verschiebt sich dann nach hinten.





Aufgabe 2 - Methode pruefeAutoAufOUeberladung()

Wenn das Auto mehr als 10 Äpfel enthält, wird der 11. Apfel ausgeladen (d.h aus der Liste entfernt und wieder auf die Welt gesetzt). Bitte entsprechende Meldungen ausgeben.

Schritt-für-Schritt-Vorgehen:
Überprüfen Sie, ob das Auto mehr als 10 Äpfel enthält. Wenn das der Fall ist...
- Ausgabe "Auto enthält x Äpfel!" (statt x natürlich die Anzahl der geladenen Äpfel ausgeben)
- Den 11. Apfel auf die Welt setzen und aus der Liste entfernen.
- Ausgabe: "Ein Apfel wurde entfernt, es sind noch x Äpfel geladen."

Hierzu brauchen Sie die Methode size()




Aufgabe 3 / Klasse Sammler - Methode listeAllerAepfelAusgeben()

Geben Sie eine Liste aller geladener Äpfel aus (Indexnummer und Gewicht anzeigen), also im Format
"Apfel 3 : 312 Gramm". Machen Sie das auf der Konsole
Ergänzen Sie die Methode so, dass zuerst überprüft wird, ob die Liste überhaupt Objekte enthält. Wenn sie keine Objekte enthält, wird eine entsprechende Ausgabe vorgenommen ("Keine Äpfel im Auto!")

Hierzu brauchen Sie die Methode get(indexwert:int)



Aufgabe 4 / Klasse Sammler - Methode einenApfelAusladen()

Überprüfen Sie, ob sich ein Apfel in der Liste befindet. Falls ja, setzen Sie den zuletzt eingeladenen Apfel auf die Welt und entfernen ihn aus der Liste. Ausgabe: "Apfel mit Index x wurde ausgeladen - noch y Äpfel im Auto."

Hierzu brauchen Sie die Methode indexOf(...), isEmpty()



Aufgabe 5 / Klasse Sammler - Methode einenGeladenenApfelEssen()

Der User gibt eine Indexnummer ein, der Apfel mit dieser Indexnummer wird aus der Liste entfernt.
Schritt-für-Schritt:
- Überprüfen Sie, ob ein Apfel mit der angegebenen Indexnummer in der Liste ist. Evtl. Ausgabe einer Fehlermeldung. (Sie brauchen NICHT zu überprüfen, ob der User eine Zahl eingeben hat oder nicht.)
- Entfernen Sie den Apfel mit der gewünschten Indexnummer aus der Liste und geben Sie eine Erfolgsmeldung aus. Achtung: Eingegebene Indexnummer muss in einen int-Wert umgewandelt werden! Das machen Sie mit
int zahlAlsInt = Integer.ParseInt(zahlAlsString)

Hierzu brauchen Sie die Methoden isEmpty(), contains(), remove(...)




Aufgabe 6 / Klasse Sammler - Methode alleAepfelEingesammelt

Überprüfen Sie, ob die World-Liste getObjects(Apfel.class) leer ist. Wenn ja, wird true zurückgegeben, wenn nein - false.

Dazu brauchen Sie die World-Methode getObjects(...), die Ihnen eine Liste zurückgibt, die Sie durchlaufen können oder die Sie daraufhin überprüfen können, ob sie leer ist (isEmpty()).




Aufgabe 7 / Klasse Sammler

Sie überprüfen an mehreren Stellen, ob die Liste leer ist. Das ist redundant. Schreiben Sie ganz unten in die Klasse eine Methode istListeLeer():boolean und setzen Sie sie an den entsprechenden Stellen ein.