| Hamstername: Killer |

|
| Version: 1.51 |
| Autor: Michael Sack |
löscheÜberflüssiges
public void löscheÜberflüssiges()
- Die Methode löscheÜberflüssiges () bewältigt zwei Aufgaben:
-
- 1. Es könnten sich in der Liste BewegungsFaden zwei hintereinander folgende Ecken exitsieren.
Um dies herauszufinden durchläuft die Methode die Liste
vom Anfang bis zum Ende und überprüft jedes in ihr gespeicherte Objekt der Datenstruktur
Feldinhalt, ob es eine Ecke darstellt (
Index i ). Wenn
dies so ist, dann überprüft sie, ob das nach diesem in der Liste BewegungsFaden folgende
Objekt der Datenstruktur Feldinhalt ebenfalls eine
Ecke
darstellt ( Index i+1 ). Im folgenden schreibt die Methode dann die Objekte vom Index (
i-1 ) und Index ( i+2 ) der Liste so um, dass sie vom Objekt des Index ( i-1 ) 2 mal die
Methode removeLastListElement () der
Datenstruktur Feldinhalt aufruft und das Objekt im Anschluss an seine ursprüngliche
Stelle in der Liste wieder einträgt. Anschliessend wird die Methode remove ( i ) drei mal
auf die Liste BewegungsFaden angewendet, womit die übrigen 3 Objekte
- aus der Liste gelöscht werden.
-
- 2. Es könnte sich an der Stelle mit dem Index ( i ) eine Ecke befinden und an der Stelle mit dem Index (
i-1 ) eine kleine Ecke befinden. Wenn dies
so ist holt die Methode löscheÜberflüssiges () den Nachfolger der Ecke mit dem Index (
i+1 ) aus der Liste und überprüft ihn, ob er weder
eine Ecke, noch eine kleine Ecke ist. Wenn dies so ist, dann holt sie den Vorgänger
der kleinen Ecke mit dem Index ( i-2 ) aus der Liste BewegungsFaden und überprüft ihn
ebenfalls, ob er weder eine Ecke, noch eine
kleine Ecke ist. Ist dem so, dann tut sie folgendes: Sie wendet auf das Feldinhalt
Objekt mit dem Index ( i+1 ) zwei mal die Feldinhalt- Methode removeFirst () an und speichert das
Objekt wieder an der Stelle ( i+1 ) in der Liste. Anschliessend wendet sie auf das Objekt
mit dem Index ( i-2 ) ein mal die Feldinhalt - Methode removeLastListElement () an und
speichert das Objekt wieder an der Stelle ( i-2 ) in der Liste BewegungsFaden. Zum Schluss
wendet die Methode löscheÜberflüssiges () die Listenmethode remove ( i-1 ) zweimal auf
die Liste BewegungsFaden an. Am Ende wird der Zeiger i wieder auf den Anfang gesetzt und
die Methode löscheÜberflüssiges () durchläuft die Liste nocheinmal.
-
- Die Methode ist eine experimentelle Methode. Ich habe mich jedoch dazu entschlossen sie
trotzdem zu verwenden, da sie dem Hamster einiges an Wegen erspart und sehr effektiv ist.
-
-
- ( c) Copyright by Michael Sack 2002