In diesem Tutorial lernen wir die Vector-Klasse und ihre Verwendung kennen. Wir werden auch lernen, wie es sich von der ArrayList-Klasse unterscheidet und warum wir stattdessen Array-Listen verwenden sollten.
Die Vector
Klasse ist eine Implementierung der List
Schnittstelle, mit der wir Arrays mit veränderbarer Größe ähnlich der ArrayList-Klasse erstellen können.
Java Vector vs. ArrayList
In Java implementiert ArrayList
und Vector
implementiert die List
Schnittstelle und bietet die gleichen Funktionen. Es gibt jedoch einige Unterschiede zwischen ihnen.
Die Vector
Klasse synchronisiert jede einzelne Operation. Das heißt, wenn wir eine Operation für Vektoren ausführen möchten, Vector
wendet die Klasse automatisch eine Sperre auf diese Operation an.
Wenn ein Thread auf einen Vektor zugreift und gleichzeitig ein anderer Thread versucht, darauf zuzugreifen, wird eine aufgerufene Ausnahme ConcurrentModificationException
generiert. Daher macht diese kontinuierliche Verwendung der Sperre für jede Operation Vektoren weniger effizient.
In Array-Listen werden Methoden jedoch nicht synchronisiert. Stattdessen wird die Collections.synchronizedList()
Methode verwendet, mit der die Liste als Ganzes synchronisiert wird.
Hinweis: Es wird empfohlen, ArrayList
anstelle von zu verwenden, Vector
da Vektoren nicht threadsicher und weniger effizient sind.
Erstellen eines Vektors
So können wir Vektoren in Java erstellen.
Vector vector = new Vector();
Hier gibt Typ den Typ einer verknüpften Liste an. Beispielsweise,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Methoden des Vektors
Die Vector
Klasse stellt auch die Implementierungen der List
Schnittstelle mit veränderbaren Arrays der Schnittstelle bereit (ähnlich der ArrayList
Klasse). Einige der Vector
Methoden sind:
Elemente zum Vektor hinzufügen
add(element)
- fügt Vektoren ein Element hinzuadd(index, element)
- fügt der angegebenen Position ein Element hinzuaddAll(vector)
- fügt alle Elemente eines Vektors einem anderen Vektor hinzu
Beispielsweise,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) )
Ausgabe
Vektor: (Hund, Pferd, Katze) Neuer Vektor: (Krokodil, Hund, Pferd, Katze)
Zugriff auf Vektorelemente
get(index)
- gibt ein vom Index angegebenes Element zurückiterator()
- gibt ein Iteratorobjekt zurück, um sequentiell auf Vektorelemente zuzugreifen
Beispielsweise,
import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Ausgabe
Element bei Index 2: Katze Vektor: Hund, Pferd, Katze,
Vektorelemente entfernen
remove(index)
- Entfernt ein Element von der angegebenen PositionremoveAll()
- Entfernt alle Elementeclear()
- Entfernt alle Elemente. Es ist effizienter alsremoveAll()
Beispielsweise,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) )
Ausgabe
Anfangsvektor: (Hund, Pferd, Katze) Entferntes Element: Pferd Neuer Vektor: (Hund, Katze) Vektor nach clear (): ()
Andere Vektormethoden
Methoden | Beschreibungen |
---|---|
set() | ändert ein Element des Vektors |
size() | Gibt die Größe des Vektors zurück |
toArray() | konvertiert den Vektor in ein Array |
toString() | konvertiert den Vektor in einen String |
contains() | Durchsucht den Vektor nach dem angegebenen Element und gibt ein boolesches Ergebnis zurück |