16.1.2 | Vector |
Die Klasse Vector repräsentiert ein Array variabler Länge und variablen Inhalts. Man besitzt die Möglichkeit, über Indizes direkt auf die einzelnen Elemente zuzugreifen. In einem Vector-Exemplar kann jedes von der Klasse Object abgeleitete Objekt gespeichert werden.
Jedes Exemplar der Klasse Vector besitzt zwei Kenngrößen:Jeder Vektor wird mit einer bestimmten Länge initialisiert. Diese Länge kann man dem Konstruktor direkt übergeben:
- Kapazität
Das ist die aktuelle Größe des Vektors.- Kapazitätserhöhung
Das ist die Anzahl an Elementen, um die ein Vektor erweitert wird, wenn er keinen Platz mehr für ein weiteres Element hat. Die Kapazitätserhöhung wird intern im Datenelement capacityIncrement in der Klasse Vector gespeichert. Der Programmierer hat jedoch keinen direkten Zugriff auf dieses Datenelement.Vector v = new Vector(5);erzeugt einen Vektor, der anfangs Platz für 5 Elemente bietet. Ohne die Angabe einer Größe im Konstruktor wird der voreingestellte Wert von 10 Elementen verwendet.
Fügt man einem Vector-Exemplar ein weiteres Element hinzu, wenn dessen Kapazität bereits erschöpft ist, wird die aktuelle Kapazität um den Wert von capacityIncrement erhöht.
Da nicht bei jeder Verschiebung des Vector-Inhalts Speicher belegt bzw. freigegeben werden muss, wird die Speicherverwaltung entlastet.
Wenn im Konstruktor keine Vorgabe für capacityIncrement gemacht wird, wird der Wert der aktuellen Kapazität jedes Mal verdoppelt, wenn ein Element über die Größe des Vektors hinaus hinzugefügt wird.
Um den Wert von capacityIncrement anzugeben, muss ein anderer Konstruktor verwendet werden:Vector v = new Vector(5, 10);Diese Zeile erzeugt einen Vektor mit der Anfangskapazität 5 und einem capacityIncrement von 10.
Die wichtigsten Methoden von Vector sind:Weitere Methoden, die zur Manipulation und zum Zugriff auf Elemente eines Vector-Exemplars dienen, können der elektronischen Referenz entnommen werden.
- addElement(Object obj)
Hängt das übergebene Objekt am Ende des Vektors an.- insertElementAt(Object obj, int index)
Fügt das übergebene Objekt an der Position ein, die durch index angegeben wird. Gibt man einen Index an, der außerhalb des zulässigen Bereichs liegt, wird eine ArrayIndexOutOfBoundsException erzeugt. Falls sich an der angegebenen Position schon ein Element befindet, wird dieses überschrieben.- removeElement(Object obj)
Entfernt das übergebene Objekt aus dem Vector. Ist es mehr als einmal vorhanden, wird das Element mit dem niedrigsten Index entfernt.- size()
Liefert die Anzahl der Elemente, die sich gerade im Vector befinden.