Home > Informatik > Einführung in die OOP > 8. Exception-Handling > 8.1 MyArrayList, Teil 5

8.1 Die Klasse MyArrayList, Teil 5

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

8.1.5 Weiterentwicklung der Klasse

Erweitern Sie Ihre Klasse MyArrayList um die folgenden Methoden, die man von einer Listenklasse erwarten würde.

void set(int index, Object o)

Diese Methode ersetzt das Element an der Position index durch das Objekt o. Die übrigen Elemente der Liste bleiben an ihrer Position, und die Größe der Liste (size) verändert sich nicht. Achten Sie darauf, dass nur ein bereits vorhandener Index erlaubt ist. Wählen Sie die entsprechende private check()-Methode.

void remove(int index)

Diese Methode entfernt das Element an der angegebenen Position. Alle rechts daneben stehenden Elemente rücken um jeweils eine Position nach links, und size verringert sich um 1. Der durch das Aufrücken frei gewordene letzte Platz im internen Array soll dann auf null gesetzt werden, damit keine alte Referenz erhalten bleibt.

void clear()

Diese Methode entfernt alle Elemente aus der Liste. Nach dem Aufruf ist die Liste leer, alle bisherigen Referenzen werden auf null gesetzt. Die Kapazität der Liste (also length) ändert sich durch clear() jedoch nicht.

boolean isEmpty()

Diese Methode liefert den Wert true, wenn die Liste leer ist, also kein Element enthält. Andernfalls liefert sie false.

boolean trimToSize()

Diese Methode verkleinert das interne Array so, dass seine Länge genau der aktuellen Anzahl gespeicherter Elemente entspricht.

boolean contains(Object o)

Liefert true, wenn ein zu o gleiches Objekt in der Liste enthalten ist, sonst false.

int indexOf(Object o)

Liefert den Index des ersten zu o gleichen Elements zurück oder -1, falls kein solches Element in der Liste enthalten ist.

Hinweis zu den Methoden contains() und indexOf()

Jedes Objekt in Java besitzt eine Methode equals(). Mit ihr kann geprüft werden, ob zwei Objekte als gleich angesehen werden sollen. Der Aufruf a.equals(b) liefert den Wert true, wenn die beiden Objekte a und b gleich sind.

Aber Achtung: equals() prüft die inhaltliche Gleichheit. Mit dem Operator == wird dagegen nur geprüft, ob zwei Referenz-Variablen auf genau dasselbe Objekt verweisen.

Beispiel:

String s1 = new String("Hallo");

String s2 = new String("Hallo");

Hier liefert s1 == s2 den Wert false, weil beide Variablen auf unterschiedliche Objekte im Speicher verweisen.

Dagegen liefert s1.equals(s2) den Wert true, weil beide String-Objekte inhaltlich gleich sind.

Seitenanfang -
Weiter mit einer generischen Version von MyArrayList ...