what is java vector java vector class tutorial with examples
Denne vejledning forklarer alt om vektordatastruktur i Java med eksempler. Du lærer at oprette, starte, sortere og bruge en Java-vektor i dine programmer:
En vektor kan defineres som et dynamisk array, der kan vokse eller krympe alene, dvs. at vektor vil vokse, når flere elementer føjes til den, og vil krympe, når elementer fjernes fra den.
Denne adfærd er i modsætning til den, der er statisk. Men i lighed med arrays kan der fås adgang til vektorelementer ved hjælp af heltalindekser.
=> Tjek her for at se AZ af Java-træningsvejledninger her.
En vektor kan ses som ligner en anden dynamisk array datastruktur, ArrayList bortset fra de to nedenstående forskelle:
- Vektoren synkroniseres, dvs. alle metoderne i Vector er markeret som 'synkroniseret', og når først en metode er påkaldt, kan den samme metode ikke påberåbes, medmindre det foregående opkald er afsluttet.
- Vektorklassen har mange metoder, der ikke er en del af samlingens ramme, men dens arvemetoder.
Hvad du vil lære:
Java Vector Class
En vektorklasse er bortset fra “ java.util ”Pakke og implementeringslistegrænseflade. En vektor er en matrix af objekter eller vektor af objekter.
En klassedeklaration for Vector-klassen er angivet nedenfor:
public class Vector extends Object implements List, Cloneable, Serializable
Som vist ovenfor udvides en Vector-klasse “ java.lang.object ”Og implementerer grænseflader til liste, klonerbare og serierbare.
Sådan oprettes en vektor i Java?
Du kan oprette et Vector-objekt ved hjælp af en af følgende Vector-konstruktormetoder.
hvordan åbner jeg .jar-filer
Konstruktør prototype | Beskrivelse | |
---|---|---|
Klar | Bortfalder klart () | Rydder vektoren af dets elementer. |
vektor () | Dette er standardkonstruktøren for Vector-klassen. Det opretter en tom vektor med størrelse 10. | |
vektor (int initialCapacity) | Denne overbelastede konstruktør konstruerer et tomt Vector-objekt med kapaciteten = initialCapacity. | |
vektor (int initialCapacity, int capacityIncrement) | Denne konstruktormetode opretter et tomt Vector-objekt med specificeret initialCapacity og capacityIncrement. | |
Vektor (samling c) | Et vektorobjekt oprettes med de oprindelige elementer fra den specificerede samling c. |
Lad os se på hver af konstruktørerne for at initialisere vektorobjekter.
Initialiser Vector
(i) Vector ()
Dette er standardkonstruktøren for Vector-klassen. Når du påberåber denne konstruktør, oprettes et Vector-objekt med standardstørrelse 10.
Den generelle syntaks for denne metode er:
Vektorobjekt = ny vektor ();
For eksempel,
Vector vec1 = new Vector ();
Ovenstående udsagn opretter en ny Vector 'vec1' med størrelse 10.
(ii) Vektor (int initialCapacity)
Den overbelastede konstruktør af Vector-klassen accepterer 'initialCapacity' som argumentet. Denne konstruktør opretter et Vector-objekt med den specificerede kapacitet.
Metodens generelle syntaks er:
Vector objekt = ny Vector (initialCapacity);
For eksempel,
Vector vec1 = new Vector (10);
Ovenstående programmeringserklæring opretter et vektorobjekt 'vec1' med kapacitet på 10, dvs. denne vektor kan gemme op til 10 elementer.
(iii) Vektor (int initialCapacity, int capacityIncrement)
Dette er endnu en overbelastet konstruktør af Vector-klassen, og det opretter et Vector-objekt med den angivne startkapacitet og forøgelse af kapaciteten.
Den generelle syntaks for denne metode er:
Vektorobjekt = ny vektor (initialCapacity, capacityIncrement);
For eksempel,
Vector vec1 = new Vector(5,10);
I ovenstående udsagn er vektorens indledende kapacitet 5, og inkrementet er 10. Dette betyder, når 6thelement indsættes i vektoren, vil kapaciteten af vektoren blive forøget til 15 (5 + 10). Tilsvarende når 16thelement indsættes, vil vektorens kapacitet blive udvidet til 25 (15 +10).
(iv) Vektor (samling c)
Den sidste overbelastede konstruktør i Vector-klassen tager en foruddefineret samling som et argument og opretter en Vector med alle elementerne fra denne samling som dens elementer.
Den generelle syntaks er:
Vektorobjekt = ny vektor (samling c);
For eksempel,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Ovenstående udsagn opretter en Vector 'vec1' med indledende elementer som {1,2,3,4, 5}.
Når vi holder alle disse beskrivelser i tankerne, kan vi implementere et Vector-program for bedre at forstå disse konstruktører.
Vektormetoder i Java
Følgende er de metoder, der understøttes af Vector-klassen i Java.
Metodenavn | Prototype | Beskrivelse |
---|---|---|
tilføje | Boolsk tilføjelse (E e) | Tilføjer givet element til slutningen af vektoren. |
Void add (int index, E element) | Føj element til vektoren ved det angivne indeks. | |
tilføjAlle | Boolsk addAll (samling c) | Tilføjer alle elementerne fra den givne samling til slutningen af vektoren. |
Boolsk addAll (int-indeks, samling c) | Tilføjer alle elementerne i den angivne samling ved det angivne indeks. | |
addElement | ugyldig addElement (E obj) | Tilføjer det angivne element i slutningen af vektoren ved at øge vektorstørrelsen. |
Kapacitet | Int kapacitet () | Returnerer vektorens aktuelle kapacitet. |
Klon | Objektklon () | Kloner vektoren. |
Indeholder | Boolsk indeholder (Objekt o) | Kontrollerer, om vektoren indeholder specificeret element. |
indeholderAlle | Boolsk indeholderAlle (samling c) | Kontrollerer, om vektoren indeholder alle elementerne i den givne samling. |
kopi til | Void copyInto (Object () anArray) | Kopierer vektorelementerne i et givet array. |
ElementAt | E ElementAt (int-indeks) | Returnerer vektorelementet ved det angivne indeks. |
Elementer | Optællingselementer () | Returnerer opregnede komponenter til vektoren. |
sikre kapacitet | Annullerer sikre kapacitet (int min kapacitet) | Øger vektorens kapacitet for at opfylde den specificerede minimumskapacitet. |
Metodenavn | Prototype | Beskrivelse |
---|---|---|
insertElementAt | Void insertElementAt (E obj, int index) | Indsætter det givne objekt i vektoren ved det givne indeks. |
Lige med | Boolske lig (Objekt o) | Sammenligner nuværende vektor med specificeret vektor for at kontrollere, om de er ens. |
firstElement | E firstElement () | Returnerer det første element i vektoren ved indeks 0. |
Få | E get (int-indeks) | Returnerer elementet i vektoren ved det angivne indeks. |
hashCode | int hashCode () | Returnerer hashkodeværdien for Vector. |
indeks af | int indexOf (Objekt o) | finder indekset for den første forekomst af det givne element i vektoren; -1 hvis element ikke er til stede i vektoren. |
int indexOf (Object o, int index) | Søger vektoren fra det givne indeks i retning fremad for det angivne element; returnerer indeks, hvis elementet findes ellers -1, hvis elementet ikke findes. | |
er tom | Boolsk er tom () | Kontrollerer, om vektoren er tom. |
Iterator | Iteratoriterator () | Returnerer en iterator, der bruges til at krydse over elementerne i vektoren. |
lastElement | E lastElement () | Returnerer det sidste element i vektoren. |
lastIndexOf | Int lastIndexOf (Objekt o) | Søger i vektoren for den sidste forekomst af et givet element og returnerer indekset, eller returnerer -1 elementet findes ikke. |
Int lastIndexOf (Objekt o, int-indeks) | Begynder at søge efter sidste forekomst af det givne element fra det givne indeks baglæns. Returnerer indekset, hvis elementet findes ellers returnerer -1. | |
listIterator | ListIteratorlistIterator () | Returnerer en liste iterator over vektorelementerne. |
ListIteratorlistIterator (int-indeks) | Returnerer en liste-iterator over vektorelementerne startende fra det givne indeks. |
Metodenavn | Prototype | Beskrivelse |
---|---|---|
removeRange | beskyttet tomrum removeRange (int fraIndex, int tilIndex) | Sletter alle elementerne fra vektoren i det givne interval fraIndex (inklusive), totoIndex (eksklusiv). |
Fjerne | E fjern (int-indeks) | Sletter element ved givet indeks fra vektoren. |
Boolsk fjernelse (Objekt o) | Sletter første forekomst af det givne element fra vektoren. Hvis element ikke er til stede, sker der intet med vektoren | |
Fjern alt | Boolsk removeAll (samling c) | Sletter alle de elementer fra vektoren, der er til stede i den givne samling. |
ugyldig removeAll Elements () | Sletter alle vektorelementer og reducerer det således til størrelse nul. | |
removeElement | Boolsk removeElement (Objekt obj) | Fjerner den første forekomst af det givne element fra vektoren. |
ugyldig removeElementAt (int-indeks) | Sletter elementet ved det givne indeks. | |
bevar alle | Boolsk retainAll (samling c) | I modsætning til 'removeAll' bevarer metoden retainAll elementer i Vector, der matcher med elementer i den specificerede samling. |
sæt | E-sæt (int-indeks, E-element) | Indstiller værdien ved det givne indeks med det nye medfølgende element. |
Ugyldigt sæt ElementAt (E obj, int index) | Indstiller de givne elementer ved det givne indeks. | |
setSize | Void setSize (int newSize) | Indstiller den givne størrelse for denne vektor. |
Størrelse | int størrelse () | Returnerer antallet af elementer i denne vektor eller længden af vektoren. |
underliste | ListsubList (intfromIndex, inttoIndex) | Returnerer en visning eller underliste over vektoren, der spænder fra index til index. |
toArray | Objekt () toArray () | Konverterer den givne vektor til en matrix, der indeholder alle vektorelementer i den angivne rækkefølge. |
T () toArray (T () a) | Returnerer en matrix af den angivne type, der indeholder alle vektorelementer. | |
toString | String toString () | Returnerer en strengrepræsentation af vektoren. |
trimToSize | ugyldig trimToSize () | Trimmer vektoren for at imødekomme den aktuelle størrelse. |
Vector implementering
Det følgende Java-program demonstrerer brugen af alle konstruktormetoderne beskrevet ovenfor.
import java.util.*; public class Main{ public static void main(String() args) { //Create vectors v1, v2,v3 and v4 Vector v1 = new Vector(); //a vector with default constructor Vector v2 = new Vector(20); // a vector of given Size //initialize vector v2 with values v2.add(10); v2.add(20); v2.add(30); Vector v3 = new Vector(30, 10); // a vector of given Size and Increment // create a vector v4 with given collection List aList = new ArrayList(); aList.add('one'); aList.add('two'); Vector v4 = new Vector(aList); //print contents of each vector System.out.println('Vector v1 Contents:' + v1); System.out.println('Vector v2 Contents:' + v2); System.out.println('Vector v3 Contents:' + v3); System.out.println('Vector v4 Contents:' + v4); } }
Produktion:
Ovenstående program har fire vektorer i sig. Den første v1 oprettes med en standardkonstruktør. Den anden Vector v2 oprettes med startkapacitet som 20. Derefter føjes få elementer til v2. Den tredje vektor oprettes med en indledende kapacitet på 30 og trin 10.
Dernæst opretter vi en ArrayList og opretter en fjerde Vector v4 med ArrayList som argument. Endelig viser vi indholdet af hver af disse vektorer.
Bemærk indholdet af den fjerde Vector v4. Da vi har givet ArrayList som argument, bliver indholdet af ArrayList indholdet af v4.
Komplet vektoreksempel
Lad os nu implementere endnu et program, der vil demonstrere oprettelsen af vektorer, tilføje elementer til det og vise dets indhold.
import java.util.*; public class Main { public static void main(String args()) { //Create an empty Vector of even numbers Vector evenVector= new Vector (); //Add elements in the vector evenVector.add(2); evenVector.add(4); evenVector.add(6); evenVector.add(8); evenVector.add(10); evenVector.add(12); evenVector.add(14); evenVector.add(16); //Display the vector System.out.println('Vector evenVector contents: ' +evenVector); //delete the first occurence of an element 4 using remove method System.out.println('
Firstoccurence of element 4 removed: '+evenVector.remove((Integer)4)); //Display the vector System.out.println('
Vector contents after remove operation: ' +evenVector); //Remove the element at index 4 & display the vector System.out.println('
Remove element at index 4: ' +evenVector.remove(4)); System.out.println('
Vector contents after remove: ' +evenVector); //hashcode for the vector System.out.println('
Hash code of the vector = '+evenVector.hashCode()); //Get the element at index 1 System.out.println('
Element at index 1 is = '+evenVector.get(1)); } }
Produktion:
Lad os tage et andet vektoreksempel. I dette program vil vi brug en strengvektor . Vi manipulerer denne vektor ved at tilføje elementer og derefter udskrive dens størrelse og kapacitet.
import java.util.*; public class Main { public static void main(String args()) { // create a vector with initial capacity = 2 Vector fruits_vec = new Vector(2); //add elements to the vector fruits_vec.addElement('Grapes'); fruits_vec.addElement('Melon'); fruits_vec.addElement('Kiwi'); fruits_vec.addElement('Apple'); //print current size and capacity of the vector System.out.println('Vector Size: '+fruits_vec.size()); System.out.println('Default Vector capacity increment: '+fruits_vec.capacity()); //add more elements to the vector fruits_vec.addElement('Orange'); fruits_vec.addElement('Mango'); fruits_vec.addElement('Fig'); //print current size and capacity again System.out.println('Vector Size after addition: '+fruits_vec.size()); System.out.println('Vector Capacity after increment: '+fruits_vec.capacity()); //print vector elements Enumeration fruits_enum = fruits_vec.elements(); System.out.println('
Vector Elements are:'); while(fruits_enum.hasMoreElements()) System.out.print(fruits_enum.nextElement() + ' '); } }
Produktion:
Sorter en vektor
Du kan også sortere en vektor efter en bestemt rækkefølge. For at sortere en vektor skal du bruge metoden Collections.sort () i Java Collections Framework.
Følgende eksempel viser vektorsortering.
import java.util.*; public class Main { public static void main(String arg()) { //Create an empty vector Vector oddVector = new Vector(); //Add elements to the vector oddVector.add(1); oddVector.add(11); oddVector.add(7); oddVector.add(3); oddVector.add(5); //print the vector elements System.out.println('Vector elements: '+oddVector); //sort vector using Collections.sort method Collections.sort(oddVector); //print sorted vector System.out.println('Vector elements after sorting: '+oddVector); } }
Produktion:
Ovenstående program opretter en vektor med ulige tal. Derefter sorteres vektoren ved hjælp af metoden Collections.sort ().
2D (to-dimensionel) vektor
En 2d-vektor er en vektor, der har hvert af sine elementer som en vektor. Det kan også betegnes som 'Vektor af vektorer'.
Et eksempel nedenfor viser 2d-vektoren.
import java.util.*; public class Main { public static void main(String args()) { //define and initialize a vector Vector inner_vec = new Vector(); inner_vec.add('Software'); inner_vec.add('Testing'); inner_vec.add('Java'); inner_vec.add('Tutorials'); //define another vector and add first vector to it. Vector outer_vec = new Vector(); outer_vec.add(inner_vec); String str; //display the contents of vector of vectors System.out.println('Contents of vector of vectors:'); for(int i=0;i Produktion:
I ovenstående program har vi en vektor med fire elementer. Derefter erklærer vi en anden vektor og tilføjer den forrige vektor som et element til den anden vektor. Bemærk, hvordan elementerne i vektoren er tilgængelige. Form for for-sløjfen, du kan konkludere, at den ydre vektors første element (ved indeks 0) er den første eller indre vektor.
hvor kan du se anime gratis online
Således i sløjfen holder vi indekset for den ydre vektor som 0 og sløjfer gennem den indre vektor for at vise alle elementerne.
Konverter vektor til matrix
Lad os overveje følgende eksempel på konvertering af en vektor til en matrix. For at konvertere en vektor til en matrix bruger vi 'toArray'-metoden i Vector-klassen.
I det følgende programmeringseksempel , erklærer vi en strengvektor og tilføjer elementer til den. Derefter bruger vi toArray-metoden i vektorklassen, konverterer vi vektoren til et strengarray ved at sende strengarrayobjektet som et argument.
import java.util.Vector; public class Main { public static void main(String() args) { // Create a Vector of String elements Vector color_vector = new Vector(); // Add elements to Vector color_vector.add('Violet'); color_vector.add('Indigo'); color_vector.add('Blue'); color_vector.add('Green'); color_vector.add('Yellow'); color_vector.add('Orange'); color_vector.add('Red'); //Convert Vector to String Array using toArray method String() colorsArray = color_vector.toArray(new String(color_vector.size())); //print Array Elements System.out.println('String Array Elements :'); for(String val:colorsArray){ System.out.print(val + ' '); } } }
Produktion:
Vector vs Array
Nedenfor er nogle af forskellene mellem en vektor og en matrix.
Vektor Array Reserverer yderligere lagerplads, når kapaciteten øges. Reserverer ikke yderligere lagerplads. Vektor er dynamisk, og dens størrelse vokser og krymper, når elementer tilføjes eller fjernes. Arrays er statiske, og dens størrelse forbliver fast, når de er erklæret. Vektorer kan kun gemme objekter. Arrays kan gemme primitive typer såvel som objekter. Det giver en størrelse () metode til at bestemme størrelsen. Indeholder længdeegenskab for at bestemme længden. Ingen konceptdimensioner, men kan oprettes som en vektor af vektorer, der normalt kaldes 2d-vektor. Arrays understøtter dimensioner. Vektor synkroniseres. Arrayet er ikke synkroniseret. Vektor er langsommere end arrayet. Array er hurtigere. Sikrer typesikkerhed ved at støtte generiske lægemidler. Ingen generisk support.
Vector vs ArrayList
Dette afsnit diskuterer forskellen mellem Vector og ArrayList i Java.
Vektor ArrayList Vector har stigningsstørrelse ved hjælp af hvilken vektorstørrelse der kan øges. ArrayList giver ikke trin i størrelse. Til stede siden den oprindelige version af Java (JDK 1.0 version). Introduceret i Java siden JDK 1.2 Vector er en arveklasse af Java. ArrayList er en del af Java Collections Framework. Vector bliver dobbelt så stor, når dens kapacitet er nået. ArrayList vokser med halvdelen af størrelsen, når dens kapacitet er nået. Vektormetoder synkroniseres. ArrayList er ikke synkroniseret. Vector bruger Enumerator og Iterator til at krydse. ArrayList bruger kun Iterator. Vektoroperationer er langsommere. ArrayList er hurtigere. Vector er trådsikker, hvilket betyder, at det er tilladt og sikkert at bruge Vector fra flere tråde. ArrayList er ikke trådsikker.
Ofte stillede spørgsmål
Q # 1) Hvad er en vektor i Java?
Svar: I Java kan en vektor defineres som et dyrkbart udvalg af objekter. I lighed med arrays kan der også fås adgang til vektorelementer ved hjælp af indekser.
Q # 2) Bestilles vektor i Java?
Svar: Ja. En vektor bestilles og opretholder indsætningsordren for elementer.
Q # 3) Er Vector-trådsikker i Java?
Svar: Ja. I Java er Vector-klassen trådsikker. Da Vector-klassen er synkroniseret, gør den den trådsikker, dvs. du kan bruge Vector-klassen fra flere tråde, og den er sikker.
Spørgsmål nr. 4) Hvorfor bruger vi vektor i Java?
Svar: Den vigtigste grund til, at Vector bruges i Java, er, at en Vector vokser og krymper automatisk. De er dynamiske, hvorfor de foretrækkes frem for arrays.
Spørgsmål nr. 5) Hvilket er bedre - ArrayList eller vektor?
Svar: Ydelsesmæssig ArrayList er hurtigere sammenlignet med Vector, da Vector synkroniseres og gør den langsommere.
Konklusion
I denne vejledning startede vi med vektordatastrukturen i Java. Vektorer ligner næsten et array, hvor der er adgang til vektorelementerne ved hjælp af velkendte indekser. Vektorer kaldes dynamisk array, og i modsætning til arrays vokser Vector-størrelsen og krymper automatisk.
Vektorer har også kapacitets- og forøgelsesfunktioner, der kan bruges til at oprette og reservere ekstra lagerplads til fremtidige tilføjelser. Vector er en ældre klasse i java.util-pakke af Java og er synkroniseret såvel som trådsikker.
Således bør vi foretrække vektorer, når vi har brug for dynamisk størrelse og også mens vi arbejder i et miljø med flere tråde.
=> Besøg her for den eksklusive Java-træningsvejledningsserie.
Anbefalet læsning
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Java Reflection Tutorial med eksempler
- Java-interface og abstrakt klasseundervisning med eksempler
- Jagged Array In Java - Vejledning med eksempler
- Java Array Length Tutorial med kodeeksempler
- Sådan sorteres en matrix i Java - vejledning med eksempler
- Java 'dette' Nøgleord: Vejledning med kodeeksempler
- Adgang modifikatorer i Java - vejledning med eksempler