Java-Vektor
Java-Vektor
In diesem Tutorial lernen wir die Vector-Klasse und ihre Verwendung kennen. Wir werden auch lernen, wie sie sich von der ArrayList-Klasse unterscheidet und warum wir stattdessen Array-Listen verwenden sollten.
Der Vector
Klasse ist eine Implementierung von List
Schnittstelle, die es uns erlaubt, in der Größe veränderbare Arrays ähnlich der ArrayList-Klasse zu erstellen.
Java-Vektor vs. ArrayList
In Java sind beide ArrayList
und Vector
implementiert den List
Schnittstelle und bietet die gleichen Funktionalitäten. Es gibt jedoch einige Unterschiede zwischen ihnen.
Die Vector
Klasse synchronisiert jede einzelne Operation. Das bedeutet, wann immer wir eine Operation mit Vektoren durchführen wollen, der Vector
-Klasse wendet automatisch eine Sperre auf diese Operation an.
Dies liegt daran, dass, wenn ein Thread auf einen Vektor zugreift und gleichzeitig ein anderer Thread versucht, darauf zuzugreifen, eine Ausnahme namens ConcurrentModificationException
auftritt generiert wird. Daher macht diese kontinuierliche Verwendung von Sperren für jede Operation Vektoren weniger effizient.
In Array-Listen werden Methoden jedoch nicht synchronisiert. Stattdessen wird der Collections.synchronizedList()
verwendet Methode, die die Liste als Ganzes synchronisiert.
Hinweis: Es wird empfohlen, ArrayList
zu verwenden anstelle von Vector
weil Vektoren nicht threadsicher und weniger effizient sind.
Erstellen eines Vektors
So können wir Vektoren in Java erstellen.
Vector<Type> vector = new Vector<>();
Hier Typ gibt den Typ einer verknüpften Liste an. Zum Beispiel
// create Integer type linked list
Vector<Integer> vector= new Vector<>();
// create String type linked list
Vector<String> vector= new Vector<>();
Vektormethoden
Die Vector
-Klasse bietet auch die resized-Array-Implementierungen von List
Schnittstelle (ähnlich der ArrayList
Klasse). Einige der Vector
Methoden sind:
Elemente zu Vektor hinzufügen
add(element)
- Fügt Vektoren ein Element hinzuadd(index, element)
- fügt ein Element an der angegebenen Position hinzuaddAll(vector)
- fügt alle Elemente eines Vektors einem anderen Vektor hinzu
Zum Beispiel
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<String> animals = new Vector<>();
animals.add("Crocodile");
animals.addAll(mammals);
System.out.println("New Vector: " + animals);
}
}
Ausgabe
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]
Zugriff auf Vektorelemente
get(index)
- gibt ein durch den Index angegebenes Element zurückiterator()
- gibt ein Iterator-Objekt zurück, um sequentiell auf Vektorelemente zuzugreifen
Zum Beispiel
import java.util.Iterator;
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<String> iterate = animals.iterator();
System.out.print("Vector: ");
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
Ausgabe
Element at index 2: Cat Vector: Dog, Horse, Cat,
Vektorelemente entfernen
remove(index)
- entfernt ein Element von der angegebenen PositionremoveAll()
- entfernt alle Elementeclear()
- entfernt alle Elemente. Es ist effizienter alsremoveAll()
Zum Beispiel
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []
Andere Vektormethoden
Methoden | Beschreibungen |
---|---|
set() | ändert ein Element des Vektors |
size() | gibt die Größe des Vektors zurück |
toArray() | wandelt den Vektor in ein Array um |
toString() | wandelt den Vektor in einen String um |
contains() | durchsucht den Vektor nach dem angegebenen Element und gibt ein boolesches Ergebnis zurück |
Java