Vad är Vector i Java och hur använder vi det?



Denna blogg om 'Vectors in Java' hjälper dig att förstå hur vektorklassen skiljer sig från ArrayList och hjälper dig att lära dig om olika inblandade metoder.

Vektorer i är en av de mest använda datastrukturerna i programmeringsvärlden.Vi alla vet det Arrayer är datastrukturer som håller data linjärt. Vektorer lagrar också data linjärt, men till skillnad från Arrays har de inte en fast storlek. Istället kan deras storlek ökas på begäran.

Vektorklass är en barnklass av Abstraktlista klass och redskap på Lista .För att använda vektorer måste vi först importera Vector-klass från paketet java.util:





importera java.util.Vector

I den här artikeln kommer vi att diskutera följande begrepp med vektorer:



Låt oss börja!

Fördel s av Vector i Java

  • Egenskapen att ha en dynamisk storlek är väldigt användbar eftersom det undviker minnesavfall om vi inte vet storleken på datastruktur vid tidpunkten för deklarationen.
  • När vi vill ändra storleken på vår datastruktur mitt i ett program kan vektorer visa sig vara mycket användbara.

Egenskapen att ha en dynamisk storlek är inte unik för vektorer i Java. En annan datastruktur, känd som ArrayList, visar också egenskapen att ha en dynamisk storlek. Men vektorer skiljer sig från ArrayLists på grund av ett par anledningar:

  • Först synkroniseras vektorer vilket ger det en fördel framför jämfört med program eftersom det finns risk för datakorruption.
  • För det andra har vektorer några äldre funktioner som endast kan implementeras på vektorer och inte på ArrayLists.

Hur man kommer åt element i vektor

Vi kan komma åt datamedlemmarna helt enkelt med hjälp av elementets index, precis som vi får åtkomst till elementen i Arrays.



Exempel- Om vi ​​vill komma åt det tredje elementet i en vektor v, hänvisar vi helt enkelt till det som v [3].

Vektorer konstruktörer

Nedan listas de olika varianterna av vektorn konstruktörer tillgänglig att använda:

  1. Vektor (int initialCapacity, int Increment) - Konstruerar en vektor med given initialkapacitet och dess ökning i storlek.
  2. Vector (int initialCapacity) - Konstruerar en tom vektor med given initialCapacity. I det här fallet är Inkrement noll.
  3. Vektor() - Konstruerar en standardvektor med kapacitet 10.
  4. Vektor (samling c) - Konstruerar en vektor med en given samling, elementens ordning är densamma som returneras av samlingens iterator.

Det finns också tre skyddade parametrar i vektorer

  1. Int capacityIncrement () - Det ökar automatiskt vektorkapaciteten när storleken blir större än kapaciteten.
  2. Int elementCount () - berätta antalet element i vektorn
  3. Objekt [] elementData () - array där element av vektor lagras

De vanligaste felen i vektordeklarationen

  • Vector kastar en IllegalArgumentException om InitialSize för den definierade vektorn är negativ.
  • Om den angivna samlingen är noll, kastar den NullPointerException

Notera:

  1. Om inte vektortillväxten anges är kapacitetenfördubblats i varje stegcykel.
  2. En vektors kapacitet kan inte vara under storleken, den kan vara lika med den.

Låt oss överväga ett exempel på att initiera vektorkonstruktörer.

Exempel: Initiera vektorkonstruktörer

/ Java-kod som illustrerar vektorkonstruktörer importerar java.util. * Public class Main {public static void main (String [] args) {// create default vector Vector v1 = new Vector () // create a vector of given Size Vector v2 = ny vektor (20) // skapa en vektor med given storlek och ökning Vector v3 = ny vektor (30,10) v2.add (100) v2.add (100) v2.add (100) // skapa en vektor med given samling Vector v4 = ny Vector (v2) System.out.println ('Vector v1 of capacity' + v1.capacity ()) System.out.println ('Vector v2 of capacity' + v2.capacity ()) System.out .println ('Vector v3 of capacity' + v3.capacity ()) System.out.println ('Vector v4 of capacity' + v4.capacity ())}

Produktion

Konstruktörer - vektorer i Java - Edureka

Minnesallokering av vektorer

Hittills måste du ha förstått att vektorer inte har en fast storlek, utan de har möjlighet att ändra sin storlek dynamiskt. Man kan tro att vektorerna avsätter obestämd långt utrymme för att lagra objekt. Men så är inte fallet. Vektorer kan ändra sin storlek baserat på två fält 'kapacitet' och 'kapacitetInkrement'. Inledningsvis tilldelas en storlek som är lika med ”kapacitetsfältet” när en vektor deklareras. Vi kan infoga element som är lika med kapaciteten. Men så snart nästa element sätts in ökar det storleken på matrisen med storleken 'capacityIncrement'. Därför kan den ändra sin storlek dynamiskt.

För en standardkonstruktör , fördubblas kapaciteten när kapaciteten är full och ett nytt element ska infogas.

Exempel - Antag att vi har en vektor av InitialCapacity 5 och capacityIncrement av 2. Så den ursprungliga storleken på vektorn är 5 element Vi infogar 5 element i denna vektor en efter en, nämligen 1,2,3,4,5. När vi försöker sätta in ett annat element i vektorn, nämligen 6, kommer vektorn att ökas med 2. Därför är storleken på vektorn nu 7. Så vektorn justerar enkelt sin storlek enligt nej. av element.

En annan intressant punkt är att till skillnad från matriser inte innehåller vektorer riktiga objekt utan bara referenser till objekten. Därför tillåter det att objekt av olika datatyper lagras i samma vektor.

Metoder i Vector

Låt oss titta på några mycket ofta använda vektormetoder.

  • Boolean add (Object o) - Det lägger till ett element i slutet av vektorn.
// Java-kod som visar boolesk add () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1 ) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan lista v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Vektorn är' + v)}}

Produktion

  • Void add (int Index, E element) - Det lägger till det givna elementet vid det angivna indexet i vektorn
// Java-kod som visar void add () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (0 , 1) // Lägger till 1 vid index 0 v.add (1, 'Java') // Lägger till 'Java' vid index 1 v.add (2, 'är') // Lägg till 'är' vid index 2 v.add (3, 'Fun') // Lägger till 'Fun' i indexet 3 v.add (4, '!!!') // Lägger till 'Fun' i indexet 4 System.out.println (' Vektorn är '+ v)}}

Produktion

round robin schemaläggningsprogram i c
  • Boolean Ta bort (objekt o) - Det tar bort ta bort elementet vid det angivna indexet i vektorn
// Java-kod som visar boolesk borttagningsmetod () -metod java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1 ) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan lista v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Vector före borttagning' + v) v.remove (1) System.out.println ('Vector after borttagning '+ v)}}

Produktion

  • Boolean removeElement ( Objekt objekt) - Det raderar elementet med dess namn obj (inte med indexnummer)
// Java-kod som visar removeElement () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Vector före borttagning' + v) v.removeElement ('Java') System.out.println ('Vector efter borttagning '+ v)}}

Produktion

  • Int storlek () - Den returnerar storleken på vektorn.
// Java-kod som visar storlek () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (0, 1) // Lägger till 1 vid index 0 v.add (1, 'Java') // Lägger till 'Java' vid index 1 v.add (2, 'är') // Lägg till 'är' vid index 2 v.add (3, 'Fun') // Lägger till 'Fun' i index 3 System.out.println ('Vektorn är' + v.storlek ())}}

Produktion

  • Int kapacitet () - Den returnerar vektorn
// Java-kod som visar kapacitet () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (0, 1) // Lägger till 1 vid index 0 v.add (1, 'Java') // Lägger till 'Java' vid index 1 v.add (2, 'är') // Lägg till 'är' vid index 2 v.add (3, 'Fun') // Lägger till 'Fun' i index 3 System.out.println ('Vektorkapaciteten är' + v.capacity ())}}

Produktion

  • Objekt få (int index) - Det returnerar elementet vid den angivna positionen i vektorn
// Java-kod som visar get () -metoden import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Elementet vid index 1 är' + v.get (1))}}

Produktion

  • Objekt firstElement () - Det returnerar det första elementet
// Java-kod som visar firstElement () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Det första elementet är' + v.firstElement ())}}

Produktion

  • Objekt lastElement () - Det returnerar det sista elementet
// Java-kod som visar metoden lastElement () importerar java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (1) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till 'är' i slutet av listan v.add ('Fun') // Lägger till 'Fun' i slutet av listan System.out.println ('Det sista elementet är' + v.lastElement ())}}

Produktion

  • Booleska lika (Objekt o) - Den jämför vektorn med det angivna objektet för jämställdhet. Det returnerar sant om alla element är sanna vid motsvarande index
// Java-kod som visar booleska lika med () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor Vector vcopy = new Vector () v.add (1) // Lägger till 1 i slutet av listan v.add ('Java') // Lägger till 'Java' i slutet av listan v.add ('är') // Lägg till ' är 'i slutet av listan v.add (' Fun ') // Lägger till' Fun 'i slutet av listan vcopy.add (0,1) // Lägger till 1 i index 0 vcopy.add (1, 'Java') // Lägger till 'Java' i index 1 vcopy.add (2, 'är') // Adds 'är' vid index 2 vcopy.add (3, 'Fun') // Lägger till 'Fun' vid index 3 vcopy.add (4, '!!!') // Lägger till 'Fun' vid index 4 om (v.equals (vcopy)) System.out.println ('Båda vektorerna är lika') annars System .out.println ('Vektorer är inte lika')}}

Produktion

  • Ogiltig trimtosize () - Denna metod tar bort extra kapacitet och håller kapaciteten bara för att hålla elementen dvs lika med storleken
// Java-kod som visar trimToSize () metod import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skapar en standardvektor v.add (0, 1) // Lägger till 1 vid index 0 v.add (1, 'Java') // Lägger till 'Java' vid index 1 v.add (2, 'är') // Lägg till 'är' vid index 2 v.add (3, 'Fun') // Lägger till 'Fun' i indexet 3 System.out.println ('Vektorkapaciteten är' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektorkapaciteten är' + v.kapacitet ())}}

Produktion


Andra viktiga metoder

Nu måste du ha en bra idé om hur du arbetar med vektorer. Om du vill utforska fler av vektormetoderna, ta en titt på tabellen nedan.

Metodens namn Metodens funktion

Boolean isEmpty ()

kontrollerar om det finns element eller inte

Boolean innehåller (Objekt o)

används för att kontrollera existensen av ett specifikt element, säg o

int indexOf (Objekt o)

Det returnerar indexet för elementet o

void removeRange (int s, int e)

tar bort element från vektorn med början från s och slutar med (e-1)

ogiltig rensa ()

tar bort alla element

ogiltig försäkraCapacity (int c)

Det ökar kapaciteten med c

ogiltig setSize (int s)

Den sätter storleken till s. Om s> storlek fylls den extra kapaciteten med nollvärden. Om s

ObjektelementAt (int a)

returnerar elementet som finns på indexnummer a

Objektuppsättning (int a, Object o)

ersätter elementet som finns i index a med det givna elementet o

Objekt [] toArray ()

returnerar en matris som innehåller samma element som vektorn

Objektklon ()

Vektorobjektet kopieras

Boolean addAll (Collection c)

lägger till alla element i samling c till vektorn

Boolean addAll (int a, Collection c)

infogar alla element i samlingen c till vektorn vid det angivna indexet a

Boolean retainAll (Collection c)

behåller alla element i vektorn som också finns i samling c

Lista sublista (int s, int e)

returnerar elementen, som ett List-objekt, från s och slutar med (e-1) från vektorn.

När alla bra saker tar slut, så är vår blogg på Vectors in . Vi hoppas att vi kunde täcka alla aspekter av java-vektorer i den här bloggen och att du kunde samla kunskap om vektorer.

Se till att du tränar så mycket som möjligt och återgår till din upplevelse.

Kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Vi är här för att hjälpa dig med varje steg på din resa, för att bli en förutom de här Java-intervjufrågorna, kommer vi med en läroplan som är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna “Vectors in Java” artikeln så återkommer vi så snart som möjligt.