Hvad er Vector i Java, og hvordan bruger vi det?



Denne blog om 'Vectors in Java' hjælper dig med at forstå, hvordan vektorklassen adskiller sig fra ArrayList og hjælper dig med at lære om forskellige involverede metoder.

Vektorer i er en af ​​de mest anvendte datastrukturer i programmeringsverdenen.Det ved vi alle sammen Arrays er datastrukturer, der holder dataene lineært. Vektorer gemmer også dataene lineært, men i modsætning til Arrays har de ikke en fast størrelse. I stedet kan deres størrelse øges efter behov.

Vektorklasse er en børneklasse af AbstraktListe klasse og redskaber på Liste .For at bruge vektorer skal vi først importere Vector-klassen fra pakken java.util:





import java.util.Vector

I denne artikel vil vi diskutere følgende begreber af vektorer:



Lad os komme igang!

Fordel s af Vector i Java

  • Egenskaben ved at have en dynamisk størrelse er meget nyttig, da det undgår hukommelsesspild, hvis vi ikke kender størrelsen på datastruktur på tidspunktet for erklæringen.
  • Når vi vil ændre størrelsen på vores datastruktur midt i et program, kan vektorer vise sig at være meget nyttige.

Egenskaben ved at have en dynamisk størrelse er ikke unik for vektorer i Java. En anden datastruktur, kendt som ArrayList, viser også egenskaben ved at have en dynamisk størrelse. Imidlertid er vektorer forskellige fra ArrayLists på grund af et par årsager:

  • For det første synkroniseres vektorer, hvilket giver det en fordel i forhold til sammenlignet med programmer, da der er risiko for datakorruption.
  • For det andet har vektorer nogle ældre funktioner, som kun kan implementeres på vektorer og ikke på ArrayLists.

Sådan får du adgang til elementer i Vector

Vi kan få adgang til datamedlemmerne ved blot at bruge elementets indeks, ligesom vi får adgang til elementerne i Arrays.



Eksempel- Hvis vi ønsker at få adgang til det tredje element i en vektor v, henviser vi simpelthen til det som v [3].

Vektorer Konstruktører

Nedenfor er de forskellige variationer af vektoren konstruktører tilgængelig til brug:

  1. Vektor (int initialCapacity, int Increment) - Konstruerer en vektor med en given initialkapacitet og dens forøgelse i størrelse.
  2. Vektor (int initialCapacity) - Konstruerer en tom vektor med given initialCapacity. I dette tilfælde er stigning nul.
  3. Vektor () - Konstruerer en standardvektor med kapacitet 10.
  4. Vektor (samling c) - Konstruerer en vektor med en given samling, rækkefølgen af ​​elementerne er den samme som returneres af samlingens iterator.

Der er også tre beskyttede parametre i vektorer

  1. Int capacityIncrement () - Det forøger automatisk vektorens kapacitet, når størrelsen bliver større end kapaciteten.
  2. Int elementCount () - fortælle antallet af elementer i vektoren
  3. Objekt [] elementData () - array, hvor elementerne i vektoren er lagret

Mest almindelige fejl i vektorer

  • Vector kaster en IllegalArgumentException hvis InitialSize af den definerede vektor er negativ.
  • Hvis den angivne samling er nul, kaster den NullPointerException

Bemærk:

  1. Hvis vektorforøgelsen ikke er specificeret, vil dens kapacitet værefordoblet i hver trinvis cyklus.
  2. Kapaciteten for en vektor kan ikke være under størrelsen, den kan svare til den.

Lad os overveje et eksempel på initialisering af vektorkonstruktører.

Eksempel: Initialisering af vektorkonstruktører

/ Java-kode, der illustrerer Vector Constructors importerer java.util. * Offentlig klasse 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) // opret en vektor med given størrelse og stigning Vector v3 = ny vektor (30,10) v2.add (100) v2.add (100) v2.add (100) // opret 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

Hukommelsesallokering af vektorer

Indtil videre skal du have forstået, at vektorer ikke har en fast størrelse, men i stedet har de evnen til at ændre deres størrelse dynamisk. Man kunne tro, at vektorerne tildeler ubegrænset lang plads til at gemme objekter. Men dette er ikke tilfældet. Vektorer kan ændre deres størrelse baseret på to felter 'kapacitet' og 'kapacitetInkrement'. Oprindeligt tildeles en størrelse svarende til 'kapacitet' -feltet, når en vektor erklæres. Vi kan indsætte de elementer, der svarer til kapaciteten. Men så snart det næste element indsættes, øger det arrayets størrelse med størrelsen 'capacityIncrement'. Derfor er det i stand til at ændre sin størrelse dynamisk.

java konverter streng til dato

For en standardkonstruktør , fordobles kapaciteten, når kapaciteten er fuld, og et nyt element skal indsættes.

Eksempel - Antag, at vi har en vektor af InitialCapacity 5 og kapacitetInkrement af 2. Så den oprindelige størrelse af vektoren er 5 elementer Vi indsætter 5 elementer i denne vektor en efter en, nemlig 1,2,3,4,5. Når vi forsøger at indsætte et andet element i vektoren, nemlig 6, vil vektorens størrelse blive forøget med 2. Derfor er vektorens størrelse nu 7. Så vektoren justerer let sin størrelse i henhold til nr. af elementer.

Et andet interessant punkt er, at vektorer i modsætning til arrays ikke indeholder reelle objekter, men kun referencer til objekterne. Derfor tillader det, at objekter af forskellige datatyper lagres i den samme vektor.

Metoder i Vector

Lad os se på få meget ofte anvendte vektormetoder.

  • Boolsk tilføjelse (Objekt o) - Det tilføjer et element i slutningen af ​​vektoren.
// Java-kode, der viser boolsk add () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1 ) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen liste v.add ('Sjov') // Tilføjer 'Sjov' i slutningen af ​​listen System.out.println ('Vektoren er' + v)}}

Produktion

  • Void add (int Index, E element) - Det tilføjer det givne element ved det angivne indeks i vektoren
// Java-kode, der viser ugyldig add () metode import java.util. * Offentlig klasse Main {offentlig statisk ugyldig main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (0 , 1) // tilføjer 1 ved indekset 0 v.add (1, 'Java') // tilføjer 'Java' ved indekset 1 v.add (2, 'er') // tilføjer 'er' ved indekset 2 v.add (3, 'Fun') // Tilføjer 'Fun' ved indekset 3 v.add (4, '!!!') // Tilføjer 'Fun' ved index 4 System.out.println (' Vektoren er '+ v)}}

Produktion

  • Fjern boolsk (objekt o) - Det fjerner fjern elementet ved det givne indeks i vektoren
// Java-kode, der viser boolsk remove () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1 ) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen liste v.add ('Sjov') // Tilføjer 'Sjov' i slutningen af ​​listen System.out.println ('Vector before removal' + v) v.remove (1) System.out.println ('Vector after fjernelse '+ v)}}

Produktion

  • Boolean removeElement ( Objekt obj) - Det sletter elementet med dets navn obj (ikke efter indeksnummer)
// Java-kode, der viser removeElement () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen v.add ('Fun') // Tilføjer 'Fun' i slutningen af ​​listen System.out.println ('Vector before removal' + v) v.removeElement ('Java') System.out.println ('Vector efter fjernelse '+ v)}}

Produktion

  • Int-størrelse () - Det returnerer størrelsen på vektoren.
// Java-kode, der viser størrelse () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (0, 1) // Tilføjer 1 ved indekset 0 v.add (1, 'Java') // Tilføjer 'Java' ved indekset 1 v.add (2, 'er') // Tilføjer 'er' ved indekset 2 v.add (3, 'Sjov') // Tilføjer 'Sjov' i indekset 3 System.out.println ('Vektorstørrelsen er' + v.størrelse ())}}

Produktion

  • Int kapacitet () - Det returnerer vektorens kapacitet
// Java-kode, der viser kapacitet () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (0, 1) // Tilføjer 1 ved indekset 0 v.add (1, 'Java') // Tilføjer 'Java' ved indekset 1 v.add (2, 'er') // Tilføjer 'er' ved indekset 2 v.add (3, 'Fun') // Tilføjer 'Fun' i indekset 3 System.out.println ('Vektorkapaciteten er' + v.capacity ())}}

Produktion

  • Objekt få (int-indeks) - Det returnerer elementet på den givne position i vektoren
// Java-kode, der viser get () -metoden import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen v.add ('Fun') // Tilføjer 'Fun' i slutningen af ​​listen System.out.println ('Elementet i indeks 1 er' + v.get (1))}}

Produktion

  • Objekt førstElement () - Det returnerer det første element
// Java-kode, der viser firstElement () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen v.add ('Fun') // Tilføjer 'Fun' i slutningen af ​​listen System.out.println ('Det første element er' + v.firstElement ())}}

Produktion

  • Objekt lastElement () - Det returnerer det sidste element
// Java-kode, der viser lastElement () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (1) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer 'er' i slutningen af ​​listen v.add ('Fun') // Tilføjer 'Fun' i slutningen af ​​listen System.out.println ('Det sidste element er' + v.lastElement ())}}

Produktion

  • Boolske lig (Objekt o) - Det sammenligner vektoren med det specificerede objekt for lighed. Det returnerer sandt, hvis alle elementer er sande ved deres tilsvarende indekser
// Java-kode, der viser boolsk lig () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor Vector vcopy = new Vector () v.add (1) // tilføjer 1 i slutningen af ​​listen v.add ('Java') // tilføjer 'Java' i slutningen af ​​listen v.add ('er') // tilføjer ' er 'i slutningen af ​​listen v.add (' Fun ') // Tilføjer' Fun 'i slutningen af ​​listen vcopy.add (0,1) // Tilføjer 1 ved indekset 0 vcopy.add (1, 'Java') // Tilføjer 'Java' ved indekset 1 vcopy.add (2, 'er') // Tilføjer 'er' ved indekset 2 vcopy.add (3, 'Fun') // Tilføjer 'Fun' ved indeks 3 vcopy.add (4, '!!!') // Tilføjer 'Sjov' ved indeks 4 hvis (v.equals (vcopy)) System.out.println ('Begge vektorer er ens') ellers System .out.println ('Vektorer er ikke ens')}}

Produktion

  • Annulleret trimtosize () - Denne metode fjerner ekstra kapacitet og holder kapaciteten bare til at holde elementerne, dvs. lig med størrelsen
// Java-kode, der viser trimToSize () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det opretter en standardvektor v.add (0, 1) // Tilføjer 1 ved indekset 0 v.add (1, 'Java') // Tilføjer 'Java' ved indekset 1 v.add (2, 'er') // Tilføjer 'er' ved indekset 2 v.add (3, 'Fun') // Tilføjer 'Fun' i indekset 3 System.out.println ('Vektorkapaciteten er' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektorkapaciteten er' + v.kapacitet ())}}

Produktion


Andre vigtige metoder

Nu skal du have en god idé om, hvordan du arbejder med vektorer. Hvis du ønsker at udforske flere af vektormetoderne, skal du kigge på nedenstående tabel.

Metodens navn Metodens funktion

Boolsk er tom ()

kontrollerer, om der findes elementer eller ej

Boolsk indeholder (Objekt o)

bruges til at kontrollere eksistensen af ​​et specifikt element, siger o

int indexOf (Objekt o)

Det returnerer indekset for elementet o

ugyldig removeRange (int s, int e)

flet sort c ++ eksempel

fjerner elementer fra vektoren startende fra s og slutter med (e-1)

ugyldigt klart ()

fjerner alle elementerne

ugyldigt sikre kapacitet (int c)

Det øger kapaciteten med ca.

ugyldig setSize (int s)

Den indstiller størrelsen til s. Hvis s> størrelse er den ekstra kapacitet fyldt med nulværdier. Hvis s

ObjektelementAt (int a)

returnerer det eksisterende element ved indeksnummer a

Objektsæt (int a, Object o)

erstatter elementet til stede i indekset a med det givne element o

Objekt [] toArray ()

returnerer en matrix, der indeholder de samme elementer som vektoren

Objektklon ()

Vektorobjektet kopieres

Boolsk addAll (samling c)

tilføjer alle elementerne i samling c til vektoren

Boolsk addAll (int a, Collection c)

indsætter alle elementerne i samlingen c til vektoren ved det angivne indeks a

i python bruges __init__-metoden i en klasse til

Boolsk retainAll (samling c)

bevarer alle de elementer i vektoren, der også findes i samling c

Liste underliste (int s, int e)

returnerer elementerne som et listeobjekt, der starter fra s og slutter med (e-1) fra vektoren.

Da enhver god ting slutter, er vores blog om Vectors også . Vi håber, at vi var i stand til at dække alle aspekterne af java-vektorer i denne blog, og du var i stand til at samle noget viden om vektorer.

Sørg for at øve så meget som muligt, og vend din oplevelse tilbage.

Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et ud over dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'Vektorer i Java' artikel, og vi vender tilbage til dig hurtigst muligt.