In deze zelfstudie leren we over de klasse Vector en hoe deze te gebruiken. We zullen ook leren hoe deze verschilt van de klasse ArrayList en waarom we in plaats daarvan arraylijsten moeten gebruiken.
De Vector
klasse is een implementatie van de List
interface waarmee we resizable-arrays kunnen maken die lijken op de klasse ArrayList.
Java-vector versus ArrayList
In Java, beide ArrayList
en Vector
implementeert de List
interface en biedt dezelfde functionaliteiten. Er zijn echter enkele verschillen tussen beide.
De Vector
klas synchroniseert elke afzonderlijke bewerking. Dit betekent dat wanneer we een bewerking op vectoren willen uitvoeren, de Vector
klasse automatisch een vergrendeling op die bewerking toepast.
Het is omdat wanneer een thread een vector benadert en tegelijkertijd een andere thread probeert toegang te krijgen, er een geroepen uitzondering ConcurrentModificationException
wordt 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 te gebruiken ArrayList
in plaats van, Vector
omdat vectoren niet threadsafe en minder efficiënt zijn.
Een vector maken
Hier is hoe we vectoren in Java kunnen maken.
Vector vector = new Vector();
Hier geeft Type het type aan van een gekoppelde lijst. Bijvoorbeeld,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Methoden van Vector
De Vector
klasse biedt ook de realiseerbare array-implementaties van de List
interface (vergelijkbaar met de ArrayList
klasse). Enkele van de Vector
methoden zijn:
Voeg elementen toe aan vector
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 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); ) )
Uitvoer
Vector: (hond, paard, kat) Nieuwe vector: (krokodil, hond, paard, kat)
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 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(", "); ) ) )
Uitvoer
Element bij index 2: Cat Vector: Dog, Horse, Cat,
Verwijder vectorelementen
remove(index)
- verwijdert een element van een opgegeven 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 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
Initiële vector: (hond, paard, kat) Element verwijderd: paard Nieuwe vector: (hond, kat) Vector na wissen (): ()
Anderen vectormethoden
Methoden | Beschrijvingen |
---|---|
set() | verandert een element van de vector |
size() | geeft de grootte van de vector terug |
toArray() | converteert de vector naar een array |
toString() | converteert de vector naar een string |
contains() | zoekt in de vector naar het opgegeven element en retourneert een booleaans resultaat |