Class DoublyLinkedList<T>
- java.lang.Object
-
- DoublyLinkedList<T>
-
public class DoublyLinkedList<T> extends java.lang.Object
Autor
Dokumentiert von: Mert Can Özdemir
Modul: DAP1Dokumentation der Klasse DoublyLinkedList [12.1]
Die Klasse verwaltet den Anfang und das Ender der Liste. Außerdem weiß sie, wie viele Elemente die Liste enthält
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDoublyLinkedList.DeletionStrategy<E>
static classDoublyLinkedList.InspectionStrategy<E>
static classDoublyLinkedList.SubstitutionStrategy<E>
-
Constructor Summary
Constructors Constructor Description DoublyLinkedList()Konstruktor -> DoublyLinkedList
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(T content)add( T content )voidaddFirst(T content)addFirst( T content )voiddeleteSelected(DoublyLinkedList.DeletionStrategy<T> s)- Die Methode 'deleteSelected' prüft alle Elemente der Liste durch einen Aufruf der 'select'-Methode
- Wenn die 'select'-Methode für das Element, dass ihr als Argument übergeben wurde (also das aktuelle Element der Liste), 'true' liefert, wird das aktuelle Element (und damit auch die Referenz auf den Inhalt ('content'-Attribut der Klasse 'Element') gelöscht)
-> Der Garbage-Collector wirft das Element weg (=>, weil es nicht mehr über eine Referenz erreichbar gewesen ist)
- Zum Löschen wird die private 'remove()'-Methode verwendetTget(int index)get(int index)TgetFirst()getFirst()voidinspectAll(DoublyLinkedList.InspectionStrategy<T> s)- Die Methode 'inspectAll()' ruft eine Implementierung der Methode 'inspect' nacheinander für alle Elemente der Liste auf
- Dabei wird 'inspect' der Inhalt eines Elements als Argument übergeben
- Das Ergebnis der in der Methode 'inspect' vorgenommenen Untersuchung muss die Methode (des Strategieobjekts) selbst in geeigneter Form in einem Objekt ablegen, beispielsweise in ihrem Strategie-ObjektbooleanisEmpty()isEmpty()Iterator<T>iterator()Konstruktor -> IteratorTremoveFirst()removeFirst()voidshowAll()showAll()intsize()size()voidsubstituteAll(DoublyLinkedList.SubstitutionStrategy<T> s)- Für alle Elemente der Liste wird nacheinander eine Implementierung der Methode substitute aufgerufen
-> Der Methode 'substitute( Object ref )' wird jeweils das aktuelle Element als Argument �bergeben
=> 'substitute( Object ref )' liefert ein Objekt (vom Typ 'Object') zurück, das den Inhalt der Liste an der Position der Referenz 'current' ersetzt.
-
-
-
Method Detail
-
size
public int size()
size()
Methode size() gibt die gr��e der Liste zur�ck.
Ist die Liste leer, wird 0 zur�ckgegeben.
-
isEmpty
public boolean isEmpty()
isEmpty()
isEmpty() liefert einen Wahrheitswert.
Ist die Liste leer, so wird true zur�ckgegeben.
Ist die Liste nicht leer, wird false zur�ckgegeben.
-
add
public void add(T content)
add( T content )
Ergänzt ein 'Element'-Objekt am Ende der Liste, dessen Inhalt ('content'-Attribut der 'Element'-Klasse) das als Argument �bergebene Objekt wird.
-
addFirst
public void addFirst(T content)
addFirst( T content )
Erg�nzt ein Element am Anfang der Liste, dessen inhalt das als Argument �bergebene Objekt wird.
Diese Methode ist Analog zu der add() Methode.
Der einzige Unterschied ist, dass das als Argument übergebene Objekt in einer content Variablen eines neuen 'Element'-Objektes ganz am Anfang eingefügt wird
-
getFirst
public T getFirst()
getFirst()
Wenn die Liste nicht leer ist, wird das erste Element der Liste zur�ckgegeben.
Sonst wird eine Ausnahme vom Typ 'IllegalStateException' geworfen, da eine leere Liste kein Objekt an erster Stelle enth�lt.- Die Methode 'getFirst()' gibt eine Referenz auf den inhalt des ersten Elements in der Liste zurück, falls die Liste mindestens ein Element enthält.
- Die Liste wird dabei nicht ver�ndert
-> Wir schauen uns an, was vorne in der Liste steht.
-
get
public T get(int index)
get(int index)
Wenn der als Argument �bergebene Index ein g�ltiger Index ist (also ein Element an diesem Index in der Liste existiert),
wird dieses Element zur�ckgegeben.
Wird ein Index au�erhalb der Liste �bergeben, wird eine Ausnahme vom Typ 'IllegalStateException' geworfen.
-
removeFirst
public T removeFirst()
removeFirst()
Wenn die Liste nicht leer ist, gibt die Methode eine Referenz auf den Inhalt ('content') des ersten Elements zurück und löscht das Objekt aus der Liste
Ist die Liste leer und die Methode wird dennoch aufgerufen, wird eine Ausnahme vom Typ 'IllagalStateException' geworfen.
-
showAll
public void showAll()
showAll()
Druckt jedes Element in der Liste nebeneinander.
-
iterator
public Iterator<T> iterator()
Konstruktor -> Iterator
Ruft den Konstruktor der Klasse ForwardIterator auf.
=> Es wird ein Objekt der Klasse 'ForwardIterator' zurückgegeben, dessen Attribut 'current' (also 'current' des 'ForwardIterator'-Objekts) auf das Erste 'Element' der Liste verweist
-
substituteAll
public void substituteAll(DoublyLinkedList.SubstitutionStrategy<T> s)
- Für alle Elemente der Liste wird nacheinander eine Implementierung der Methode substitute aufgerufen
-> Der Methode 'substitute( Object ref )' wird jeweils das aktuelle Element als Argument �bergeben
=> 'substitute( Object ref )' liefert ein Objekt (vom Typ 'Object') zurück, das den Inhalt der Liste an der Position der Referenz 'current' ersetzt.
-
inspectAll
public void inspectAll(DoublyLinkedList.InspectionStrategy<T> s)
- Die Methode 'inspectAll()' ruft eine Implementierung der Methode 'inspect' nacheinander für alle Elemente der Liste auf
- Dabei wird 'inspect' der Inhalt eines Elements als Argument übergeben
- Das Ergebnis der in der Methode 'inspect' vorgenommenen Untersuchung muss die Methode (des Strategieobjekts) selbst in geeigneter Form in einem Objekt ablegen, beispielsweise in ihrem Strategie-Objekt
-
deleteSelected
public void deleteSelected(DoublyLinkedList.DeletionStrategy<T> s)
- Die Methode 'deleteSelected' prüft alle Elemente der Liste durch einen Aufruf der 'select'-Methode
- Wenn die 'select'-Methode für das Element, dass ihr als Argument übergeben wurde (also das aktuelle Element der Liste), 'true' liefert, wird das aktuelle Element (und damit auch die Referenz auf den Inhalt ('content'-Attribut der Klasse 'Element') gelöscht)
-> Der Garbage-Collector wirft das Element weg (=>, weil es nicht mehr über eine Referenz erreichbar gewesen ist)
- Zum Löschen wird die private 'remove()'-Methode verwendet
-
-