Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList
Java Vector begrijpen
Deze handleiding legt de Java Vector-klasse uit, de belangrijkste methoden en hoe deze verschilt van ArrayList. Leer wanneer je Vector kiest voor thread-veiligheid en prestatieoverwegingen.
De Vector-klasse implementeert de List-interface en biedt een vergrootbaar array, vergelijkbaar met ArrayList. In tegenstelling tot ArrayList is elke muterende operatie op een Vector gesynchroniseerd, wat het inherent thread-veilig maakt, maar potentieller trager in single-threaded contexten.
Java Vector vs. ArrayList
Zowel ArrayList als Vector bieden dynamische arrays, maar ze verschillen in concurrentie-afhandeling:
- Vector synchroniseert elke methode-aanroep, waarbij een lock op de instantie wordt verkregen vóór uitvoering.
- ArrayList is standaard niet gesynchroniseerd; thread-veiligheid kan worden toegevoegd met
Collections.synchronizedList()indien nodig.
Vanwege de per-operatie lock kan Vector overhead opleveren in multi-threaded omgevingen, terwijl ArrayList meestal betere prestaties biedt wanneer thread-veiligheid niet vereist is.
Tip: Kies ArrayList voor de meeste toepassingen. Gebruik Vector alleen wanneer legacy-code dit vereist of wanneer je ingebouwde synchronisatie zonder extra wrappers nodig hebt.
Een Vector aanmaken
Je kunt een Vector instantiëren met een generieke type:
Vector<Type> vector = new Vector<>();
Voorbeelden:
// Integer vector Vector<Integer> numbers = new Vector<>(); // String vector Vector<String> words = new Vector<>();
Belangrijkste methoden van Vector
De Vector-klasse biedt een complete set lijstoperaties, die ArrayList spiegelen. Enkele veelgebruikte methoden zijn:
add(E element)– voegt een element toe aan het einde.add(int index, E element)– voegt in op een specifieke positie.addAll(Collection<? extends E> c)– voegt meerdere elementen toe.get(int index)– haalt element op index op.remove(int index)– verwijdert element op index.clear()– verwijdert alle elementen.size()– huidige aantal elementen.contains(Object o)– controleert op aanwezigheid.toArray()– converteert naar array.toString()– string-representatie.set(int index, E element)– vervangt element op index.
Elementen toevoegen aan een Vector
add(element)– voegt het element toe aan het einde.add(index, element)– voegt in op een specifieke index.addAll(vector)– voegt alle elementen uit een andere vector toe.
Voorbeeld:
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("Nieuwe Vector: " + animals); } }
Output
Vector: [Dog, Horse, Cat] Nieuwe Vector: [Crocodile, Dog, Horse, Cat]
Toegang tot Vector-elementen
get(index)– haalt element op index op.iterator()– verkrijgt een iterator voor sequentiële toegang.
Voorbeeld:
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 op index 2: " + element); Iterator<String> iter = animals.iterator(); System.out.print("Vector: "); while(iter.hasNext()) { System.out.print(iter.next() + ", "); } } }
Output
Element op index 2: Cat Vector: Dog, Horse, Cat,
Elementen verwijderen uit een Vector
remove(index)– verwijdert het element op de opgegeven positie.clear()– verwijdert efficiënt alle elementen.
Voorbeeld:
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("Initiële Vector: " + animals); String removed = animals.remove(1); System.out.println("Verwijderd element: " + removed); System.out.println("Nieuwe Vector: " + animals); animals.clear(); System.out.println("Vector na clear(): " + animals); } }
Output
Initiële Vector: [Dog, Horse, Cat] Verwijderd element: Horse Nieuwe Vector: [Dog, Cat] Vector na clear(): []
Aanvullende Vector-methoden
| Methode | Beschrijving |
|---|---|
set(int index, E element) | Vervangt het element op de opgegeven positie. |
size() | Geeft het aantal elementen terug. |
toArray() | Converteert de inhoud naar een array. |
toString() | String-representatie van de vector. |
contains(Object o) | Controleert of de vector het opgegeven element bevat. |
Java
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java if…else beheersen: control flow uitgelegd
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java 8: Uitgebreide Quick Reference Gids