Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList
Java Vector verstehen
Dieser Leitfaden erklärt die Java Vector-Klasse, ihre wichtigsten Methoden und wie sie sich von ArrayList unterscheidet. Erfahren Sie, wann Sie Vector für Thread-Safety und Performance-Aspekte wählen sollten.
Die Vector-Klasse implementiert das List-Interface und bietet ein dynamisches Array, ähnlich wie ArrayList. Im Gegensatz zu ArrayList ist jede mutierende Operation an einem Vector synchronisiert, was ihn inhärent thread-sicher macht, aber in Single-Threaded-Kontexten potenziell langsamer ist.
Java Vector vs. ArrayList
Sowohl ArrayList als auch Vector bieten dynamische Arrays, unterscheiden sich jedoch in der Handhabung von Nebenläufigkeit:
- Vector synchronisiert jeden Methodenaufruf, indem er vor der Ausführung einen Lock auf der Instanz erwirbt.
- ArrayList ist standardmäßig nicht synchronisiert; Thread-Safety kann bei Bedarf mit
Collections.synchronizedList()hinzugefügt werden.
Wegen des pro-Operation-Locks kann Vector in Multi-Threaded-Umgebungen Overhead verursachen, während ArrayList normalerweise bessere Leistung bietet, wenn Thread-Safety nicht erforderlich ist.
Tipp: Bevorzugen Sie ArrayList für die meisten Anwendungen. Verwenden Sie Vector nur, wenn Legacy-Code dies erfordert oder Sie eingebaute Synchronisation ohne zusätzliche Wrapper benötigen.
Vector erstellen
Sie können einen Vector mit einem generischen Typ instanziieren:
Vector<Type> vector = new Vector<>();
Beispiele:
// Integer-Vector Vector<Integer> numbers = new Vector<>(); // String-Vector Vector<String> words = new Vector<>();
Wichtige Methoden von Vector
Die Vector-Klasse bietet einen vollständigen Satz von Listenoperationen, der ArrayList spiegelt. Einige häufig verwendete Methoden sind:
add(E element)– fügt ein Element an.add(int index, E element)– fügt an einer bestimmten Position ein.addAll(Collection<? extends E> c)– fügt mehrere Elemente hinzu.get(int index)– ruft Element über Index ab.remove(int index)– löscht über Index.clear()– entfernt alle Elemente.size()– aktuelle Anzahl der Elemente.contains(Object o)– prüft auf Existenz.toArray()– konvertiert zu Array.toString()– String-Darstellung.set(int index, E element)– ersetzt an Index.
Elemente zu einem Vector hinzufügen
add(element)– fügt das Element an.add(index, element)– fügt an einem bestimmten Index ein.addAll(vector)– fügt alle Elemente eines anderen Vectors hinzu.
Beispiel:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> mammals = new Vector<>(); mammals.add("Dog"); mammals.add("Horse"); mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); 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]
Auf Vector-Elemente zugreifen
get(index)– ruft Element über Index ab.iterator()– liefert einen Iterator für sequenziellen Zugriff.
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"); String element = animals.get(2); System.out.println("Element at index 2: " + element); Iterator<String> iter = animals.iterator(); System.out.print("Vector: "); while(iter.hasNext()) { System.out.print(iter.next() + ", "); } } }
Ausgabe
Element at index 2: Cat Vector: Dog, Horse, Cat,
Elemente aus einem Vector entfernen
remove(index)– löscht das Element an der angegebenen Position.clear()– entfernt effizient alle Elemente.
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); String removed = animals.remove(1); System.out.println("Removed Element: " + removed); System.out.println("New Vector: " + animals); 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(): []
Zusätzliche Vector-Methoden
| Methode | Beschreibung |
|---|---|
set(int index, E element) |
Ersetzt das Element an der angegebenen Position. |
size() |
Gibt die Anzahl der Elemente zurück. |
toArray() |
Konvertiert den Inhalt in ein Array. |
toString() |
String-Darstellung des Vectors. |
contains(Object o) |
Prüft, ob der Vector das angegebene Element enthält. |
Java
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Kommentare: Typen, Verwendung und Best Practices
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java Strings meistern: Erstellung, Methoden und Best Practices
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
- Java 8: Umfassender Quick-Reference-Guide