Java-vector
Java Vector
In deze zelfstudie leren we over de Vector-klasse en hoe deze te gebruiken. We zullen ook leren hoe het verschilt van de klasse ArrayList en waarom we in plaats daarvan arraylijsten zouden moeten gebruiken.
De Vector
class is een implementatie van de List
interface die ons in staat stelt om resizable-arrays te maken die lijken op de klasse ArrayList.
Java Vector versus ArrayList
In Java zijn beide ArrayList
en Vector
implementeert de List
interface en biedt dezelfde functionaliteiten. Er bestaan echter enkele verschillen tussen hen.
De Vector
klasse synchroniseert elke afzonderlijke bewerking. Dit betekent dat wanneer we een bewerking op vectoren willen uitvoeren, de Vector
class past automatisch een slot toe op die bewerking.
Het is omdat wanneer een thread toegang heeft tot een vector en tegelijkertijd een andere thread probeert toegang te krijgen, een uitzondering genaamd ConcurrentModificationException
is gegenereerd. Daarom maakt dit continue gebruik van vergrendeling voor elke bewerking vectoren minder efficiënt.
In arraylijsten worden methoden echter niet gesynchroniseerd. In plaats daarvan gebruikt het de Collections.synchronizedList()
methode die de lijst als geheel synchroniseert.
Opmerking: Het wordt aanbevolen om ArrayList
. te gebruiken in plaats van Vector
omdat vectoren niet threadsafe zijn en minder efficiënt zijn.
Een vector maken
Hier is hoe we vectoren in Java kunnen maken.
Vector<Type> vector = new Vector<>();
Hier, Type geeft het type van een gekoppelde lijst aan. Bijvoorbeeld,
// create Integer type linked list
Vector<Integer> vector= new Vector<>();
// create String type linked list
Vector<String> vector= new Vector<>();
Methoden van vector
De Vector
class biedt ook de resizable-array-implementaties van de List
interface (vergelijkbaar met de ArrayList
klas). Enkele van de Vector
methoden zijn:
Elementen aan vector toevoegen
add(element)
- voegt een element toe aan vectorenadd(index, element)
- voegt een element toe aan de opgegeven positieaddAll(vector)
- voegt alle elementen van een vector toe aan een andere vector
Bijvoorbeeld,
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);
}
}
Uitvoer
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]
Toegang tot vectorelementen
get(index)
- retourneert een element gespecificeerd door de indexiterator()
- geeft een iteratorobject terug om sequentieel toegang te krijgen tot vectorelementen
Bijvoorbeeld,
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(", ");
}
}
}
Uitvoer
Element at index 2: Cat Vector: Dog, Horse, Cat,
Verwijder vectorelementen
remove(index)
- verwijdert een element van gespecificeerde positieremoveAll()
- verwijdert alle elementenclear()
- verwijdert alle elementen. Het is efficiënter danremoveAll()
Bijvoorbeeld,
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);
}
}
Uitvoer
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []
Andere vectormethoden
Methoden | Beschrijvingen |
---|---|
set() | verandert een element van de vector |
size() | geeft de grootte van de vector terug |
toArray() | converteert de vector in een array |
toString() | converteert de vector in een String |
contains() | zoekt de vector naar gespecificeerd element en geeft een booleaans resultaat |
Java