Class DoublyLinkedList


  • public class DoublyLinkedList
    extends java.lang.Object

    Autor

    Dokumentiert von: Mert Can Özdemir
    Modul: DAP1

    Dokumentation der Klasse DoublyLinkedList [11.1]

    Die Klasse verwaltet den Anfang und das Ender der Liste. Außerdem weiß sie, wie viele Elemente die Liste enthält

    Changelog (Vergelich zu Version 10.2)

    - reverseIterator()
    + Strategien

    • Constructor Summary

      Constructors 
      Constructor Description
      DoublyLinkedList()
      Konstruktor -> DoublyLinkedList
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.lang.Object content)
      add( Object content )
      void addFirst​(java.lang.Object content)
      addFirst( Object content )
      void deleteSelected​(DoublyLinkedList.DeletionStrategy 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
      java.lang.Object get​(int index)
      get(int index)
      java.lang.Object getFirst()
      getFirst()
      void inspectAll​(DoublyLinkedList.InspectionStrategy 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
      boolean isEmpty()
      isEmpty()
      Iterator iterator()
      Ruft den Konstruktor der Klasse ForwardIterator auf.
      java.lang.Object removeFirst()
      removeFirst()
      void showAll()
      showAll()
      int size()
      size()
      void substituteAll​(DoublyLinkedList.SubstitutionStrategy 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.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DoublyLinkedList

        public DoublyLinkedList()

        Konstruktor -> DoublyLinkedList

        Der Konstruktor erzeugt eine leere Liste

    • 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​(java.lang.Object content)

        add( Object 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​(java.lang.Object content)

        addFirst( Object 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 java.lang.Object 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 java.lang.Object 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, indem die Liste vom Anfang, bis zum gew�nschten Index durchlaufen wird.
        Wird ein Index au�erhalb der Liste �bergeben, wird eine Ausnahme vom Typ 'IllegalStateException' geworfen.

      • removeFirst

        public java.lang.Object 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()

        Gibt die Inhalte ('content') aller Elemente der Liste aus.

      • iterator

        public Iterator 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 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 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 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