CNF

util
Class OList

java.lang.Object
  |
  +--java.util.AbstractCollection
        |
        +--java.util.AbstractList
              |
              +--java.util.Vector
                    |
                    +--util.OList
All Implemented Interfaces:
java.lang.Cloneable, java.util.Collection, java.util.List, java.io.Serializable
Direct Known Subclasses:
Set

public class OList
extends java.util.Vector

Eine Liste von Objekten. Grundlegende Struktur für lineare Listen und Mengen. Benutzt wird dafür die Standardklasse Vector.

Achtung! In einer OList können Elemente mehrfach auftreten. Die Operationen union und intersect sind nicht kommutativ. Allerdings verwenden sie die eigene add-Routine, damit sich spätere Spezialisierungen auf die Korrektheit dieser Operationen verlassen können.

See Also:

Quelltext, Serialized Form


Fields inherited from class java.util.Vector
capacityIncrement, elementCount, elementData
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
OList()
          Erzeugt eine neue leere Liste.
OList(java.lang.Object obj)
          Erzeugt eine neue Liste und fügt das übergebene Objekt hinzu.
 
Method Summary
 OList add(java.lang.Object obj)
          Fügt ein Element hinzu, Elemente können mehrfach auftreten.
 OList addList(OList L)
          Fügt unter Verwendung der eigenen add-Routine eine ganze Liste von Elementen hinzu.
 boolean contains(OList L)
          Ermittelt, ob alle Elemente aus der übergebenen Liste enthalten sind.
 OList del(java.lang.Object obj)
          Löscht das erste Auftreten des Elements.
 OList delList(OList L)
          Löscht unter Verwendung der eigenen del-Routine eine ganze Liste von Elementen.
 boolean equals(java.lang.Object obj)
          Zwei OListen sind gleich, wenn sie sich gegenseitig enthalten.
 OList filter(Filter F)
          Erzeugt eine neue Liste, die die Elemente enthält, für die der Test des übergebenen Filters positiv ausfällt.
 OList foldl(Foldl F, OList L)
          Erzeugt eine neue Liste, indem für alle Elemente der foldl-Liste die foldl-Routine des Foldl-Objektes aufgerufen wird, die aus einer Liste und einem Element eine neue Liste generiert.
 OList hull(Hull h)
          Berechnet die Hülle bezüglich einer Hüllenoperation, die aus einer OList wieder eine OList erzeugt.
 OList init()
          Der Anfangsteil der Liste inklusive vorletztem Element.
 OList intersect(OList L)
          Identisch mit minus(minus(L)).
 OList map(Map M)
          Erzeugt eine neue Liste, die die Elemente enthält, die entstehen, wenn die Funktion aus der Map-Klasse auf die Elemente dieser Liste angewendet wird.
 java.lang.String mapS(MapToString M)
          Wie map, jedoch wird keine neue Liste erzeugt, sondern ein Gesamtstring.
 void mapV(MapVoid M)
          Wie map, jedoch wird keine neue Liste erzeugt, sondern es wird lediglich die Map-Routine des MapVoid-Objektes aufgerufen.
 OList minus(OList L)
          Identisch mit delList.
 OList power()
          Die "Potenzliste", also eine Liste aus allen möglichen Teillisten.
 OList sort(FilterLessThan F)
          Gibt eine neue und sortierte Liste zurück.
 OList subst(java.lang.Object o_old, java.lang.Object o_new)
          Ersetzt alle Auftreten eines Objektes durch ein anderes Objekt.
 OList tail()
          Der Endteil der Liste ohne das erste Element.
 OList union(OList L)
          Identisch mit addList.
 
Methods inherited from class java.util.Vector
add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize
 
Methods inherited from class java.util.AbstractList
iterator, listIterator, listIterator
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
iterator, listIterator, listIterator
 

Constructor Detail

OList

public OList()
Erzeugt eine neue leere Liste.

OList

public OList(java.lang.Object obj)
Erzeugt eine neue Liste und fügt das übergebene Objekt hinzu.
Method Detail

add

public OList add(java.lang.Object obj)
Fügt ein Element hinzu, Elemente können mehrfach auftreten.

Das ist die einzige Methode (und del), die nicht final ist und also können Spezialisierungen nur hier ansetzen.

Overrides:
add in class java.util.Vector
Parameters:
obj - beliebiges Objekt
Returns:
gibt sich selbst zurück, damit kann die add-Routine auch gut z.B. in Folds verwendet werden
See Also:
Vector.addElement(java.lang.Object)

addList

public final OList addList(OList L)
Fügt unter Verwendung der eigenen add-Routine eine ganze Liste von Elementen hinzu.

contains

public final boolean contains(OList L)
Ermittelt, ob alle Elemente aus der übergebenen Liste enthalten sind.

Achtung! Die Reihenfolge der Elemente wird nicht beachtet.


del

public OList del(java.lang.Object obj)
Löscht das erste Auftreten des Elements.
Parameters:
obj - beliebiges Objekt
Returns:
gibt sich selbst zurück, damit kann die del-Routine auch gut z.B. in Folds verwendet werden
See Also:
Vector.removeElement(java.lang.Object)

delList

public final OList delList(OList L)
Löscht unter Verwendung der eigenen del-Routine eine ganze Liste von Elementen.

equals

public final boolean equals(java.lang.Object obj)
Zwei OListen sind gleich, wenn sie sich gegenseitig enthalten.
Overrides:
equals in class java.util.Vector

filter

public final OList filter(Filter F)
Erzeugt eine neue Liste, die die Elemente enthält, für die der Test des übergebenen Filters positiv ausfällt.

foldl

public final OList foldl(Foldl F,
                         OList L)
Erzeugt eine neue Liste, indem für alle Elemente der foldl-Liste die foldl-Routine des Foldl-Objektes aufgerufen wird, die aus einer Liste und einem Element eine neue Liste generiert.

hull

public final OList hull(Hull h)
Berechnet die Hülle bezüglich einer Hüllenoperation, die aus einer OList wieder eine OList erzeugt.

Achtung! Das kann zu Endlosschleife führen! Es ist besser, wenn die gesuchte Hülle endlich ist.


init

public final OList init()
Der Anfangsteil der Liste inklusive vorletztem Element.

intersect

public final OList intersect(OList L)
Identisch mit minus(minus(L)).

Achtung! intersect für OLists ist nicht kommutativ.


map

public final OList map(Map M)
Erzeugt eine neue Liste, die die Elemente enthält, die entstehen, wenn die Funktion aus der Map-Klasse auf die Elemente dieser Liste angewendet wird.

mapS

public final java.lang.String mapS(MapToString M)
Wie map, jedoch wird keine neue Liste erzeugt, sondern ein Gesamtstring. Die Map-Klasse muss also ein String-Objekt zurückgeben.

mapV

public final void mapV(MapVoid M)
Wie map, jedoch wird keine neue Liste erzeugt, sondern es wird lediglich die Map-Routine des MapVoid-Objektes aufgerufen.

minus

public final OList minus(OList L)
Identisch mit delList.

power

public final OList power()
Die "Potenzliste", also eine Liste aus allen möglichen Teillisten.

sort

public final OList sort(FilterLessThan F)
Gibt eine neue und sortierte Liste zurück. Implementiert ist ein einfaches Quicksort, für das ein Filter benötigt wird, der Objekte aus der Liste filtern kann, die "kleiner" als ein bestimmtes Objekt sind.
Parameters:
F - Der Filter, der "kleinere" Objekte identifizieren kann.

subst

public final OList subst(java.lang.Object o_old,
                         java.lang.Object o_new)
Ersetzt alle Auftreten eines Objektes durch ein anderes Objekt.
Parameters:
o_old - zu ersetzendes Objekt
o_new - einzusetzendes Objekt

tail

public final OList tail()
Der Endteil der Liste ohne das erste Element.

union

public final OList union(OList L)
Identisch mit addList.

Achtung! union für OLists ist nicht kommutativ.


CNF

Kontakt: m.rahn@stud.uka.de und mai99jsv@studserv.uni-leipzig.de