Vector-klassen implementerar en odlingsbar mängd objekt. Vektorer faller i äldre klasser, men nu är det helt kompatibelt med samlingar. Den finns i java.util-paketet och implementera Lista gränssnittet, så vi kan använda alla metoderna i List-gränssnittet som visas nedan enligt följande:

- Vector implementerar en dynamisk array som innebär att den kan växa eller krympa efter behov. Liksom en array innehåller den komponenter som kan nås med ett heltalsindex.
- De är väldigt lika ArrayList , men Vector är synkroniserad och har några äldre metoder som samlingsramverket inte innehåller.
- Den upprätthåller också en insättningsordning som en ArrayList. Ändå används den sällan i en miljö utan tråd som den är synkroniserad , och på grund av detta ger den dåliga prestanda när det gäller att lägga till, söka, ta bort och uppdatera dess element.
- Iteratorerna som returneras av Vector-klassen är misslyckade. I fallet med samtidig modifiering misslyckas den och kastar ConcurrentModificationException.
Syntax:
public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable>
Här, OCH är typen av element.
- Den sträcker sig Abstrakt lista och redskap Lista gränssnitt.
- Den implementerar Serialiserbara, Klonbara, Iterable, Collection, List, RandomAccess-gränssnitt.
- Den direkt kända underklassen är Stack .
Viktiga punkter angående ökningen av vektorkapaciteten är följande:
Om inkrementet specificeras kommer Vector att expandera enligt det i varje tilldelningscykel. Ändå, om ökningen inte specificeras, fördubblas vektorns kapacitet i varje tilldelningscykel. Vector definierar tre skyddade datamedlemmar:
- int kapacitetInkrement: Innehåller ökningsvärdet.
- int elementCount: Antal element som för närvarande är lagrade i vektorn.
- ObjektelementData[]: Array som håller vektorn lagras i den.
Vanliga fel i deklarationen av vektorer är som följer :
- Vector kastar en IllegalArgumentException om InitialSize för den definierade vektorn är negativ.
- Om den angivna samlingen är null, kastar den NullPointerException .
Konstruktörer
1. Vektor(): Skapar en standardvektor för den initiala kapaciteten är 10.
Vector v = new Vector();>
2. Vektor (int storlek): Skapar en vektor vars initiala kapacitet specificeras av storlek.
Vector v = new Vector(int size);>
3. Vektor (int storlek, int incr): Skapar en vektor vars initiala kapacitet specificeras av storlek och inkrement specificeras av incr. Den anger antalet element som ska allokeras varje gång en vektor ändras uppåt.
uppsättningar i java
Vector v = new Vector(int size, int incr);>
4. Vektor (Samling c): Skapar en vektor som innehåller elementen i samling c.
Vector v = new Vector(Collection c);>
Metoder i vektorklass
METOD | BESKRIVNING alfabetet av siffror |
|---|---|
| lägg till (och och) | Lägger till det angivna elementet i slutet av denna vektor. |
| add(int index, E-element) | Infogar det angivna elementet på den angivna positionen i denna vektor. |
addAll(Samling förlänger E> c) | Lägger till alla element i den angivna samlingen i slutet av denna vektor, i den ordning som de returneras av den angivna samlingens iterator. |
addAll(int index, Samling c) | Infoga alla element i den angivna samlingen i denna vektor på den angivna positionen. |
| addElement(E obj) | Lägger till den angivna komponenten i slutet av denna vektor och ökar dess storlek med en. |
| kapacitet() | Returnerar den aktuella kapaciteten för denna vektor. |
| klar() | Tar bort alla element från denna vektor. |
| klona() | Returnerar en klon av denna vektor. |
| innehåller(Objekt o) | Returnerar sant om denna vektor innehåller det angivna elementet. |
| innehåller alla (samling c) | Returnerar sant om denna vektor innehåller alla element i den angivna samlingen. |
| copyInto ( Object [ ] anArray ) | Kopierar komponenterna i denna vektor till den angivna arrayen. |
| elementAt(int index) | Returnerar komponenten vid det angivna indexet. |
| elements() | Returnerar en uppräkning av komponenterna i denna vektor. |
| sureCapacity(int minCapacity) | Ökar kapaciteten för denna vektor, om nödvändigt, för att säkerställa att den kan innehålla åtminstone det antal komponenter som specificeras av minimumkapacitetsargumentet. |
| lika(Objekt o) | Jämför det angivna objektet med denna vektor för jämlikhet. |
| firstElement() | Returnerar den första komponenten (objektet vid index 0) i denna vektor. |
forEach(Consumer super E> action) | Utför den givna åtgärden för varje element i Iterable tills alla element har bearbetats eller åtgärden ger ett undantag. |
| get(int index) | Returnerar elementet vid den angivna positionen i denna vektor. |
| hash-kod() | Returnerar hashkodvärdet för denna vektor. |
| indexOf(Objekt o) | Returnerar indexet för den första förekomsten av det angivna elementet i denna vektor, eller -1 om denna vektor inte innehåller elementet. |
| indexOf(Objekt o, int index) | Returnerar indexet för den första förekomsten av det angivna elementet i denna vektor, söker framåt från indexet, eller returnerar -1 om elementet inte hittas. |
| insertElementAt(E obj, int index) | Infogar det angivna objektet som en komponent i denna vektor vid det angivna indexet. |
| är tom() | Testar om denna vektor inte har några komponenter. |
| iterator() | Returnerar en iterator över elementen i den här listan i rätt ordning. |
| lastElement() | Returnerar den sista komponenten i vektorn. |
| lastIndexOf(Objekt o) | Returnerar indexet för den senaste förekomsten av det angivna elementet i denna vektor, eller -1 om denna vektor inte innehåller elementet. |
| lastIndexOf(Objekt o, int index) | Returnerar indexet för den senaste förekomsten av det angivna elementet i denna vektor, söker bakåt från indexet, eller returnerar -1 om elementet inte hittas. |
| listIterator() | Returnerar en listiterator över elementen i den här listan (i rätt ordning). |
| listIterator(int index) | Returnerar en listiterator över elementen i den här listan (i rätt ordning), börjar på den angivna positionen i listan. css understruken text |
| remove(int index) | Tar bort elementet på den angivna positionen i denna vektor. |
| ta bort(Objekt o) | Tar bort den första förekomsten av det angivna elementet i denna vektor. Om vektorn inte innehåller elementet är det oförändrat. |
| removeAll(Collection c) | Tar bort från denna vektor alla dess element som finns i den angivna samlingen. |
| removeAllElements() | Tar bort alla komponenter från denna vektor och ställer in dess storlek till noll. |
| removeElement(Object obj) | Tar bort den första (lägst indexerade) förekomsten av argumentet från denna vektor. |
| removeElementAt(int index) | Tar bort komponenten vid det angivna indexet. |
| removeIf(Predikatfilter) | Tar bort alla element i den här samlingen som uppfyller det givna predikatet. |
removeRange(int fromIndex, int toIndex) | Tar bort från den här listan alla element vars index är mellan fromIndex, inklusive, och toIndex, exklusiv. |
| replaceAll(UnaryOperator-operator) | Ersätter varje element i den här listan med resultatet av att operatorn tillämpas på det elementet. |
| retainAll(Samling c) | Behåller endast elementen i denna vektor som finns i den angivna samlingen. |
| set(int index, E-element) | Ersätter elementet på den angivna positionen i denna vektor med det angivna elementet. |
| setElementAt(E obj, int index) | Ställer in komponenten vid det angivna indexet för denna vektor som det angivna objektet. |
| setSize(int newSize) | Ställer in storleken på denna vektor. |
| storlek() | Returnerar antalet komponenter i denna vektor. |
| sortera (jämförare c) | Sorterar denna lista enligt den ordning som induceras av den angivna komparatorn. |
| spliterator() | Skapar en sent bindande och misslyckad splitterator över elementen i den här listan. |
| subList(int fromIndex, int toIndex) | Returnerar en vy av delen av denna lista mellan fromIndex, inklusive, och toIndex, exklusiv. |
| toArray() | Returnerar en array som innehåller alla element i denna vektor i rätt ordning. |
| toArray(T[] a) | Returnerar en array som innehåller alla element i denna vektor i rätt ordning; körtidstypen för den returnerade arrayen är den för den angivna arrayen. |
| att stränga() | Returnerar en strängrepresentation av denna vektor, som innehåller strängrepresentationen för varje element. |
| trimToSize() | Trimmar kapaciteten för denna vektor till att vara vektorns nuvarande storlek. |
Låt oss först diskutera och implementera hur man skapar och använder en vektor innan vi landar på metoderna i denna klass.
Exempel:
Java // Java Program to Demonstrate Working of Vector // Via Creating and Using It // Importing required classes import java.io.*; import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Size of the Vector int n = 5; // Declaring the Vector with // initial size n Vector v = ny vektor (n); // Lägga till nya element i // slutet av vektorn för (int i = 1; i<= n; i++) v.add(i); // Printing elements System.out.println(v); // Remove element at index 3 v.remove(3); // Displaying the vector // after deletion System.out.println(v); // iterating over vector elements // using for loop for (int i = 0; i < v.size(); i++) // Printing elements one by one System.out.print(v.get(i) + ' '); } }> Produktion
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>
Notera:
- Om vektorinkrementet inte specificeras kommer dess kapacitet att fördubblas i varje inkrementcykel.
- Kapaciteten hos en vektor kan inte vara under storleken, den kan vara lika med den.
Utföra olika operationer på vektorklassen i Java
Låt oss diskutera olika operationer på Vector-klassen som är listade enligt följande:
- Lägga till element
- Uppdaterar element
- Ta bort element
- Itererar över element
Operation 1: Lägga till element
För att lägga till elementen i vektorn använder vi Lägg till() metod. Denna metod är överbelastad för att utföra flera operationer baserat på olika parametrar. De listas nedan enligt följande:
- add(Objekt): Denna metod används för att lägga till ett element i slutet av vektorn.
- add(int index, Object): Denna metod används för att lägga till ett element vid ett specifikt index i vektorn.
Exempel:
Java // Java Program to Add Elements in Vector Class // Importing required classes import java.io.*; import java.util.*; // Main class // AddElementsToVector class GFG { // Main driver method public static void main(String[] arg) { // Case 1 // Creating a default vector Vector v1 = new Vector(); // Adding custom elements // using add() method v1.add(1); v1.add(2); v1.add('geeks'); v1.add('forGeeks'); v1.add(3); // Printing the vector elements to the console System.out.println('Vector v1 is ' + v1); // Case 2 // Creating generic vector Vector v2 = ny vektor (); // Lägga till anpassade element // med add() metoden v2.add(1); v2.add(2); v2.add(3); // Utskrift av vektorelementen till konsolen System.out.println('Vektor v2 är ' + v2); } }> Produktion:
java konkat strängar

Vector v1 is [1, 2, geeks, forGeeks, 3] Vector v2 is [1, 2, 3]>
Operation 2: Uppdaterar element
Efter att ha lagt till elementen, om vi vill ändra elementet, kan det göras med hjälp av uppsättning() metod. Eftersom en vektor är indexerad, refereras det element som vi vill ändra till av elementets index. Därför kräver denna metod att ett index och det uppdaterade elementet infogas vid det indexet.
Exempel
Java // Java code to change the // elements in vector class import java.util.*; // Driver Class public class UpdatingVector { // Main Function public static void main(String args[]) { // Creating an empty Vector Vector vec_tor = ny vektor (); // Använd metoden add() för att lägga till element i vektorn vec_tor.add(12); vec_tor.add(23); vec_tor.add(22); vec_tor.add(10); vec_tor.add(20); // Visar Vector System.out.println('Vector: ' + vec_tor); // Använda set()-metoden för att ersätta 12 med 21 System.out.println('Objektet som ersätts är: ' + vec_tor.set(0, 21)); // Använda set()-metoden för att ersätta 20 med 50 System.out.println('Objektet som ersätts är: ' + vec_tor.set(4, 50)); // Visar den modifierade vektorn System.out.println('Den nya vektorn är:' + vec_tor); } }> Produktion
Vector: [12, 23, 22, 10, 20] The Object that is replaced is: 12 The Object that is replaced is: 20 The new Vector is:[21, 23, 22, 10, 50]>
Operation 3: Ta bort element
För att ta bort ett element från en vektor kan vi använda avlägsna() metod. Denna metod är överbelastad för att utföra flera operationer baserat på olika parametrar. Dom är:
- remove(Object): Denna metod används för att ta bort ett objekt från vektorn. Om det finns flera sådana objekt tas den första förekomsten av objektet bort.
- remove(int index): Eftersom en vektor är indexerad tar denna metod ett heltalsvärde som helt enkelt tar bort elementet som finns vid det specifika indexet i vektorn. Efter att ha tagit bort elementet flyttas alla element till vänster för att fylla utrymmet och objektens index uppdateras.
Exempel
trådsynkroniseringJava
// Java code illustrating the removal // of elements from vector import java.util.*; import java.io.*; class RemovingElementsFromVector { public static void main(String[] arg) { // Create default vector of capacity 10 Vector v = new Vector(); // Add elements using add() method v.add(1); v.add(2); v.add('Geeks'); v.add('forGeeks'); v.add(4); // Removing first occurrence element at 1 v.remove(1); // Checking vector System.out.println('after removal: ' + v); } }> Produktion:
after removal: [1, Geeks, forGeeks, 4]>
Operation 4: Iterering av vektorn
Det finns flera sätt att iterera genom vektorn. De mest kända sätten är att använda basic for loop i kombination med en skaffa sig() metod för att få elementet vid ett specifikt index och avancerat för en slinga .
Exempel
Java // Java program to iterate the elements // in a Vector import java.util.*; public class IteratingVector { public static void main(String args[]) { // create an instance of vector Vectorv = new Vector(); // Lägg till element med metoden add() v.add('Geeks'); v.add('Nördar'); v.add(1, 'För'); // Använda Get-metoden och // för loop för (int i = 0; i< v.size(); i++) { System.out.print(v.get(i) + ' '); } System.out.println(); // Using the for each loop for (String str : v) System.out.print(str + ' '); } }> Produktion
Geeks For Geeks Geeks For Geeks>
Notera: Läs gärna ArrayList vs Vector klass i Java att förstå det bättre.
I Java är Vector-klassen en del av Java Collections Framework och tillhandahåller en dynamisk arrayimplementering av List-gränssnittet. Den lades till i den ursprungliga versionen av Java (Java 1.0) och tillhandahåller ett antal metoder för att manipulera elementen i en vektor, inklusive att lägga till, infoga och ta bort element.
Här är ett enkelt exempel som visar hur man använder en vektor i Java:
Java import java.util.Vector; public class VectorExample { public static void main(String[] args) { // Create a new vector Vector v = ny vektor(3, 2); // Lägg till element till vektorn v.addElement(1); v.addElement(2); v.addElement(3); // Infoga ett element vid index 1 v.insertElementAt(0, 1); // Ta bort elementet vid index 2 v.removeElementAt(2); // Skriv ut elementen i vektorn för (int i : v) { System.out.println(i); } } }> Produktion
1 0 3>
Observera att Vector-klassen är synkroniserad, vilket innebär att flera trådar kan komma åt samma vektor utan att orsaka problem. Denna synkronisering kommer dock på bekostnad av prestanda, så om du inte behöver dela en vektor mellan flera trådar är det generellt sett bättre att använda en alternativ klass som ArrayList som inte är synkroniserad.
Fördelar med att använda Vector i Java:
- Synkronisering: Som nämnts tidigare är Vector synkroniserad, vilket gör den säker att använda i en flertrådig miljö.
- Dynamisk storlek: Storleken på en vektor kan växa eller krympa dynamiskt när element läggs till eller tas bort, så du behöver inte oroa dig för att ställa in en initial storlek som kommer att rymma alla element.
- Legacy support: Vector har varit en del av Java sedan starten och stöds fortfarande, så det är ett bra alternativ om du behöver arbeta med äldre Java-kod som använder Vector.
Nackdelar med att använda Vector i Java:
- Prestanda: Synkroniseringen i Vector kan leda till långsammare prestanda jämfört med andra samlingsklasser, såsom ArrayList.
- Äldre kod: Även om Vector fortfarande stöds, skrivs nyare Java-kod ofta med de mer moderna samlingsklasserna, så det kan vara svårare att hitta exempel och stöd för Vector.
- Onödig overhead: Om du inte behöver synkroniseringsfunktionerna i Vector, kommer användningen att lägga till onödiga overhead till din kod.
Uppslagsbok
En bra referensbok för att lära dig mer om Java Collections Framework och Vector är Java Collections av Naftalin och Wadler. Den här boken ger en omfattande titt på Java-samlingsramverket, inklusive Vector, och innehåller många exempel och övningar som hjälper dig att förstå hur du använder dessa klasser effektivt.