Vector-klassen implementerer en rekke objekter som kan vokse. Vektorer faller i eldre klasser, men nå er det fullt kompatibelt med samlinger. Den finnes i java.util-pakken og implementere Liste grensesnitt, slik at vi kan bruke alle metodene til List-grensesnittet som vist nedenfor som følger:

- Vector implementerer en dynamisk matrise som betyr at den kan vokse eller krympe etter behov. Som en matrise inneholder den komponenter som kan nås ved hjelp av en heltallsindeks.
- De er veldig like ArrayList , men Vector er synkronisert og har noen eldre metoder som samlingsrammeverket ikke inneholder.
- Den opprettholder også en innsettingsrekkefølge som en ArrayList. Likevel brukes den sjelden i et miljø uten tråd som den er synkronisert , og på grunn av dette gir den dårlig ytelse når det gjelder å legge til, søke, slette og oppdatere elementene.
- Iteratorene som returneres av Vector-klassen, feiler raskt. I tilfelle av samtidig modifikasjon, svikter den og kaster ConcurrentModificationException.
Syntaks:
public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable>
Her, OG er typen element.
- Den strekker seg Abstrakt liste og redskaper Liste grensesnitt.
- Den implementerer Serializable, Cloneable, Iterable, Collection, List, RandomAccess-grensesnitt.
- Den direkte kjente underklassen er Stable .
Viktige punkter angående økningen av vektorkapasitet er som følger:
Hvis inkrementet er spesifisert, vil Vector utvides i henhold til det i hver tildelingssyklus. Likevel, hvis inkrementet ikke er spesifisert, blir vektorens kapasitet doblet i hver tildelingssyklus. Vector definerer tre beskyttede datamedlemmer:
- int kapasitetInkrement: Inneholder økningsverdien.
- int elementCount: Antall elementer som for øyeblikket er lagret i vektoren.
- ObjektelementData[]: Array som holder vektoren er lagret i den.
Vanlige feil i erklæringen av vektorer er som følger :
- Vektor kaster en UlovligArgumentUnntak hvis InitialSize for den definerte vektoren er negativ.
- Hvis den angitte samlingen er null, kaster den NullPointerException .
Konstruktører
1. Vektor(): Oppretter en standardvektor med den opprinnelige kapasiteten er 10.
Vector v = new Vector();>
2. Vektor (int størrelse): Oppretter en vektor hvis startkapasitet er spesifisert etter størrelse.
Vector v = new Vector(int size);>
3. Vektor (int størrelse, int incr): Oppretter en vektor hvis opprinnelige kapasitet er spesifisert av størrelse og inkrement er spesifisert av incr. Den spesifiserer antall elementer som skal tildeles hver gang en vektor endres oppover.
kandidatnøkkel
Vector v = new Vector(int size, int incr);>
4. Vektor (Samling c): Oppretter en vektor som inneholder elementene i samling c.
Vector v = new Vector(Collection c);>
Metoder i vektorklassen
METODE | BESKRIVELSE |
|---|---|
| legg til (Og og) | Legger til det spesifiserte elementet til slutten av denne vektoren. |
| add(int indeks, E-element) | Setter inn det spesifiserte elementet på den angitte posisjonen i denne vektoren. |
addAll(Samling utvider E> c) | Legger til alle elementene i den angitte samlingen til slutten av denne vektoren, i den rekkefølgen de returneres av den angitte samlingens iterator. |
addAll(int index, Samling c) | Sett inn alle elementene i den angitte samlingen i denne vektoren på den angitte posisjonen. |
| addElement(E obj) | Legger til den angitte komponenten på slutten av denne vektoren, og øker størrelsen med én. |
| kapasitet() | Returnerer gjeldende kapasitet til denne vektoren. |
| klar() | Fjerner alle elementene fra denne vektoren. |
| klone() | Returnerer en klon av denne vektoren. |
| inneholder(Objekt o) | Returnerer sann hvis denne vektoren inneholder det angitte elementet. |
| inneholder Alle (Samling c) | Returnerer sann hvis denne vektoren inneholder alle elementene i den angitte samlingen. |
| copyInto ( Objekt [ ] anArray ) | Kopierer komponentene til denne vektoren inn i den angitte matrisen. |
| elementAt(int indeks) | Returnerer komponenten ved den angitte indeksen. |
| elementer() | Returnerer en oppregning av komponentene i denne vektoren. |
| sikreCapacity(int minCapacity) | Øker kapasiteten til denne vektoren, om nødvendig, for å sikre at den kan inneholde minst antallet komponenter spesifisert av minimumskapasitetsargumentet. |
| lik(Objekt o) | Sammenligner det spesifiserte objektet med denne vektoren for likhet. |
| firstElement() | Returnerer den første komponenten (elementet ved indeks 0) av denne vektoren. |
forHver(Forbruker super E> handling) csma og csma cd | Utfører den gitte handlingen for hvert element i Iterable til alle elementene er behandlet eller handlingen gir et unntak. |
| get (int indeks) | Returnerer elementet på den angitte posisjonen i denne vektoren. |
| hashkode() | Returnerer hash-kodeverdien for denne vektoren. |
| indexOf(Objekt o) | Returnerer indeksen for den første forekomsten av det spesifiserte elementet i denne vektoren, eller -1 hvis denne vektoren ikke inneholder elementet. |
| indexOf(Objekt o, int indeks) | Returnerer indeksen for den første forekomsten av det spesifiserte elementet i denne vektoren, søker fremover fra indeksen, eller returnerer -1 hvis elementet ikke blir funnet. |
| insertElementAt(E obj, int index) | Setter inn det angitte objektet som en komponent i denne vektoren ved den angitte indeksen. |
| er tom() | Tester om denne vektoren ikke har noen komponenter. |
| iterator() | Returnerer en iterator over elementene i denne listen i riktig rekkefølge. |
| lastElement() | Returnerer den siste komponenten i vektoren. |
| lastIndexOf(Objekt o) | Returnerer indeksen for siste forekomst av det spesifiserte elementet i denne vektoren, eller -1 hvis denne vektoren ikke inneholder elementet. kjerne java |
| lastIndexOf(Objekt o, int indeks) | Returnerer indeksen for siste forekomst av det angitte elementet i denne vektoren, søker bakover fra indeksen, eller returnerer -1 hvis elementet ikke blir funnet. |
| listIterator() | Returnerer en listeiterator over elementene i denne listen (i riktig rekkefølge). |
| listIterator(int index) | Returnerer en listeiterator over elementene i denne listen (i riktig rekkefølge), starter på den angitte posisjonen i listen. |
| remove(int index) | Fjerner elementet på den angitte posisjonen i denne vektoren. |
| fjern (Objekt o) | Fjerner den første forekomsten av det spesifiserte elementet i denne vektoren. Hvis vektoren ikke inneholder elementet, er det uendret. |
| removeAll(Samling c) | Fjerner fra denne vektoren alle dens elementer i den angitte samlingen. |
| removeAllElements() | Fjerner alle komponenter fra denne vektoren og setter størrelsen til null. |
| removeElement(Object obj) | Fjerner den første (laveste indekserte) forekomsten av argumentet fra denne vektoren. |
| removeElementAt(int index) | Sletter komponenten ved den angitte indeksen. |
| removeIf(Predikatfilter) | Fjerner alle elementene i denne samlingen som tilfredsstiller det gitte predikatet. |
removeRange(int fromIndex, int toIndex) | Fjerner fra denne listen alle elementene hvis indeks er mellom fromIndex, inklusive, og toIndex, exclusive. |
| replaceAll(UnaryOperator-operatør) | Erstatter hvert element i denne listen med resultatet av å bruke operatoren på det elementet. |
| retainAll(Samling c) | Beholder kun elementene i denne vektoren som finnes i den angitte samlingen. |
| sett (int-indeks, E-element) | Erstatter elementet på den angitte posisjonen i denne vektoren med det spesifiserte elementet. |
| setElementAt(E obj, int index) | Setter komponenten ved den angitte indeksen til denne vektoren til å være det spesifiserte objektet. |
| setSize(int newSize) | Angir størrelsen på denne vektoren. |
| størrelse() | Returnerer antall komponenter i denne vektoren. |
| sorter (sammenligning c) | Sorterer denne listen i henhold til rekkefølgen indusert av den spesifiserte komparatoren. |
| splitter() | Oppretter en sen-bindende og feil-rask Spliterator over elementene i denne listen. |
| subList(int fromIndex, int toIndex) | Returnerer en visning av delen av denne listen mellom fromIndex, inklusive, og toIndex, exclusive. |
| toArray() | Returnerer en matrise som inneholder alle elementene i denne vektoren i riktig rekkefølge. |
| toArray(T[] a) | Returnerer en matrise som inneholder alle elementene i denne vektoren i riktig rekkefølge; kjøretidstypen for den returnerte matrisen er den for den angitte matrisen. |
| toString() | Returnerer en strengrepresentasjon av denne vektoren, som inneholder strengrepresentasjonen av hvert element. |
| trimToSize() | Trimmer kapasiteten til denne vektoren til å være vektorens nåværende størrelse. |
La oss først diskutere og implementere hvordan man lager og bruker en vektor før vi lander på metodene i denne klassen.
Eksempel:
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); // Legge til nye elementer ved // slutten av vektoren for (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) + ' '); } }> Produksjon
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5>
Merk:
- Hvis vektortilveksten ikke er spesifisert, vil dens kapasitet bli doblet i hver inkrementsyklus.
- Kapasiteten til en vektor kan ikke være under størrelsen, den kan være lik den.
Utføre forskjellige operasjoner på Vector-klassen i Java
La oss diskutere ulike operasjoner på Vector-klassen som er oppført som følger:
- Legge til elementer
- Oppdatering av elementer
- Fjerning av elementer
- Iterering over elementer
Operasjon 1: Legge til elementer
For å legge til elementene i vektoren bruker vi Legg til() metode. Denne metoden er overbelastet for å utføre flere operasjoner basert på forskjellige parametere. De er listet opp nedenfor som følger:
gjeldende dato i java
- add(Objekt): Denne metoden brukes til å legge til et element på slutten av vektoren.
- add(int index, Object): Denne metoden brukes til å legge til et element ved en bestemt indeks i vektoren.
Eksempel:
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 (); // Legge til egendefinerte elementer // ved hjelp av add()-metoden v2.add(1); v2.add(2); v2.add(3); // Skrive ut vektorelementene til konsollen System.out.println('Vektor v2 er ' + v2); } }> Produksjon:

Vector v1 is [1, 2, geeks, forGeeks, 3] Vector v2 is [1, 2, 3]>
Operasjon 2: Oppdatering av elementer
Etter å ha lagt til elementene, hvis vi ønsker å endre elementet, kan det gjøres ved å bruke sett() metode. Siden en vektor er indeksert, blir elementet som vi ønsker å endre referert til av elementets indeks. Derfor tar denne metoden en indeks og det oppdaterte elementet som skal settes inn i den indeksen.
Eksempel
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 (); // Bruk add()-metoden for å legge til elementer i vektoren vec_tor.add(12); vec_tor.add(23); vec_tor.add(22); vec_tor.add(10); vec_tor.add(20); // Viser Vector System.out.println('Vector: ' + vec_tor); // Bruk av set()-metoden for å erstatte 12 med 21 System.out.println('Objektet som erstattes er: ' + vec_tor.set(0, 21)); // Bruk av set()-metoden for å erstatte 20 med 50 System.out.println('Objektet som erstattes er: ' + vec_tor.set(4, 50)); // Viser den modifiserte vektoren System.out.println('Den nye vektoren er:' + vec_tor); } }> Produksjon
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]>
Operasjon 3: Fjerning av elementer
For å fjerne et element fra en vektor, kan vi bruke fjerne() metode. Denne metoden er overbelastet for å utføre flere operasjoner basert på forskjellige parametere. De er:
- fjern (objekt): Denne metoden brukes til å fjerne et objekt fra vektoren. Hvis det er flere slike objekter, fjernes den første forekomsten av objektet.
- remove(int index): Siden en vektor er indeksert, tar denne metoden en heltallsverdi som ganske enkelt fjerner elementet som er tilstede på den spesifikke indeksen i vektoren. Etter å ha fjernet elementet, flyttes alle elementene til venstre for å fylle plassen og indeksene til objektene oppdateres.
Eksempel
Java // 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); } }> Produksjon:
after removal: [1, Geeks, forGeeks, 4]>
Operasjon 4: Iterering av vektoren
Det er flere måter å iterere gjennom vektoren. De mest kjente måtene er å bruke basic for loop i kombinasjon med en få() metode for å få elementet på en bestemt indeks og avansert for en loop .
Eksempel
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 = ny vektor(); // Legg til elementer ved hjelp av add() metoden v.add('Geeks'); v.add('Geeks'); v.add(1, 'For'); // Ved å bruke Get-metoden og // for loop for (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 + ' '); } }> Produksjon
Geeks For Geeks Geeks For Geeks>
Merk: Gi en les til ArrayList vs Vector-klassen i Java å forstå det bedre.
I Java er Vector-klassen en del av Java Collections Framework og gir en dynamisk array-implementering av List-grensesnittet. Den ble lagt til i den opprinnelige versjonen av Java (Java 1.0) og gir en rekke metoder for å manipulere elementene i en vektor, inkludert å legge til, sette inn og fjerne elementer.
periodenøkkel
Her er et enkelt eksempel som viser hvordan du bruker 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); // Legg til elementer i vektoren v.addElement(1); v.addElement(2); v.addElement(3); // Sett inn et element ved indeks 1 v.insertElementAt(0, 1); // Fjern elementet ved indeks 2 v.removeElementAt(2); // Skriv ut elementene i vektoren for (int i : v) { System.out.println(i); } } }> Produksjon
1 0 3>
Merk at Vector-klassen er synkronisert, noe som betyr at flere tråder kan få tilgang til samme vektor uten å forårsake problemer. Imidlertid kommer denne synkroniseringen på bekostning av ytelsen, så hvis du ikke trenger å dele en vektor mellom flere tråder, er det generelt bedre å bruke en alternativ klasse som ArrayList som ikke er synkronisert.
Fordeler med å bruke Vector i Java:
- Synkronisering: Som nevnt før er Vector synkronisert, noe som gjør det trygt å bruke i et flertrådsmiljø.
- Dynamisk størrelse: Størrelsen på en vektor kan vokse eller krympe dynamisk etter hvert som elementer legges til eller fjernes, så du trenger ikke å bekymre deg for å angi en startstørrelse som vil romme alle elementer.
- Eldre støtte: Vector har vært en del av Java siden starten og støttes fortsatt, så det er et godt alternativ hvis du trenger å jobbe med eldre Java-kode som bruker Vector.
Ulemper med å bruke Vector i Java:
- Ytelse: Synkroniseringen i Vector kan føre til tregere ytelse sammenlignet med andre samlingsklasser, for eksempel ArrayList.
- Legacy Code: Mens Vector fortsatt støttes, er nyere Java-kode ofte skrevet med de mer moderne samlingsklassene, så det kan være vanskeligere å finne eksempler og støtte for Vector.
- Unødvendig overhead: Hvis du ikke trenger synkroniseringsfunksjonene til Vector, vil bruk av det legge til unødvendig overhead til koden din.
Oppslagsverk
En god oppslagsbok for å lære om Java Collections Framework and Vector er Java Collections av Naftalin og Wadler. Denne boken gir en omfattende titt på Java-samlingsrammeverket, inkludert Vector, og inneholder mange eksempler og øvelser for å hjelpe deg å forstå hvordan du bruker disse klassene effektivt.