Hva er Vector i Java, og hvordan bruker vi det?



Denne bloggen på 'Vectors in Java' vil hjelpe deg å forstå hvordan vektorklassen er forskjellig fra ArrayList og hjelpe deg med å lære om forskjellige involverte metoder.

Vektorer i er en av de mest brukte datastrukturene i programmeringsverdenen.Vi vet alle det Arrays er datastrukturer som holder dataene lineært. Vektorer lagrer også dataene på en lineær måte, men i motsetning til Arrays har de ikke en fast størrelse. I stedet kan størrelsen økes etter behov.

Vektorklasse er en barneklasse av Abstraktliste klasse og redskaper på Liste .For å bruke vektorer må vi først importere Vector-klasse fra java.util-pakken:





hvordan du konfigurerer formørkelse for java

importer java.util.Vector

I denne artikkelen vil vi diskutere følgende begreper av vektorer:



La oss komme i gang!

Fordel s av Vector i Java

  • Egenskapen med å ha en dynamisk størrelse er veldig nyttig, da det unngår minnesvinn hvis vi ikke vet størrelsen på data struktur på tidspunktet for erklæringen.
  • Når vi vil endre størrelsen på datastrukturen vår midt i et program, kan vektorer vise seg å være veldig nyttige.

Egenskapen til å ha en dynamisk størrelse er ikke unik for vektorer i Java. En annen datastruktur, kjent som ArrayList, viser også egenskapen til å ha en dynamisk størrelse. Imidlertid er vektorer forskjellige fra ArrayLists på grunn av et par årsaker:

  • For det første synkroniseres vektorer som gir den en fordel i forhold til sammenlignet med programmer fordi det er risiko for datakorrupsjon.
  • For det andre har vektorer noen eldre funksjoner som bare kan implementeres på vektorer og ikke på ArrayLists.

Hvordan få tilgang til elementer i Vector

Vi kan få tilgang til datamedlemmene ganske enkelt ved å bruke indeksen til elementet, akkurat som vi får tilgang til elementene i Arrays.



Eksempel- Hvis vi ønsker å få tilgang til det tredje elementet i en vektor v, refererer vi bare til det som v [3].

Vektorkonstruktører

Nedenfor er flere varianter av vektor konstruktører tilgjengelig for bruk:

  1. Vector (int initialCapacity, int Increment) - Konstruerer en vektor med gitt initialCapacity og dens økning i størrelse.
  2. Vector (int initialCapacity) - Konstruerer en tom vektor med gitt initialCapacity. I dette tilfellet er Inkrement null.
  3. Vector () - Konstruerer en standardvektor med kapasitet 10.
  4. Vector (samling c) - Konstruerer en vektor med en gitt samling, rekkefølgen til elementene er den samme som returneres av samlingens iterator.

Det er også tre beskyttede parametere i vektorer

  1. Int capacityIncrement () - Det øker automatisk kapasiteten til vektoren når størrelsen blir større enn kapasiteten.
  2. Int elementCount () - fortell antall elementer i vektoren
  3. Objekt [] elementData () - matrise der elementene i vektoren er lagret

De vanligste feilene i vektordeklarasjonen

  • Vector kaster en IllegalArgumentException hvis InitialSize av den definerte vektoren er negativ.
  • Hvis den angitte samlingen er null, kaster den NullPointerException

Merk:

  1. Hvis vektors økning ikke er spesifisert, vil kapasiteten væredoblet i hver økningssyklus.
  2. Kapasiteten til en vektor kan ikke være under størrelsen, den kan være lik den.

La oss se på et eksempel på initialisering av vektorkonstruktører.

Eksempel: Initialisering av vektorkonstruktører

/ Java-kode som illustrerer Vector Constructors importerer 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) // opprett en vektor med gitt størrelse og økning Vector v3 = ny vektor (30,10) v2.add (100) v2.add (100) v2.add (100) // lag en vektor med gitt 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 ())}

Produksjon

Konstruktører - Vektorer i Java - Edureka

Minnetildeling av vektorer

Så langt må du ha forstått at vektorer ikke har en fast størrelse, i stedet har de muligheten til å endre størrelsen dynamisk. Man kan tro at vektorene tildeler ubestemt lang plass til å lagre gjenstander. Men dette er ikke tilfelle. Vektorer kan endre størrelse basert på to felt 'kapasitet' og 'kapasitetsinnskudd'. Opprinnelig tildeles en størrelse som tilsvarer 'kapasitets' -feltet når en vektor er deklarert. Vi kan sette inn elementene lik kapasiteten. Men så snart neste element er satt inn, øker det størrelsen på matrisen med størrelse ‘capacityIncrement’. Derfor er den i stand til å endre størrelsen dynamisk.

For en standard konstruktør , blir kapasiteten doblet hver gang kapasiteten er full og et nytt element skal settes inn.

Eksempel - Anta at vi har en vektor av InitialCapacity 5 og kapasitetInkrement av 2. Så den opprinnelige størrelsen på vektoren er 5 elementer. Vi setter inn 5 elementer i denne vektoren en etter en, nemlig 1,2,3,4,5. Når vi prøver å sette inn et annet element i vektoren, nemlig 6, vil vektorens størrelse økes med 2. Derfor er størrelsen på vektoren nå 7. Så vektoren justerer lett størrelsen i henhold til nr. av elementer.

Et annet interessant poeng er at vektorer i motsetning til matriser ikke inneholder reelle objekter, men bare referanser til objektene. Derfor tillater det at objekter av forskjellige datatyper lagres i samme vektor.

Metoder i Vector

La oss se på noen svært ofte brukte vektormetoder.

  • Boolsk tilsetning (Objekt o) - Det legger til et element på slutten av vektoren.
// Java-kode som viser boolsk add () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor v.add (1 ) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av liste v.add ('Moro') // Legger til 'Moro' på slutten av listen System.out.println ('Vektoren er' + v)}}

Produksjon

  • Void add (int Index, E element) - Det legger til det gitte elementet ved den angitte indeksen i vektoren
// Java-kode som viser void add () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor v.add (0 , 1) // Legger til 1 ved indeksen 0 v.add (1, 'Java') // Legger til 'Java' ved indeksen 1 v.add (2, 'er') // Adds 'er' i indeksen 2 v.add (3, 'Fun') // Legger til 'Fun' i indeksen 3 v.add (4, '!!!') // Legger til 'Fun' i indeksen 4 System.out.println (' Vektoren er '+ v)}}

Produksjon

  • Boolsk fjerning (objekt o) - Det fjerner fjern elementet ved den gitte indeksen i vektoren
// Java-kode som viser boolsk remove () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor v.add (1 ) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av liste v.add ('Moro') // Legger til 'Moro' på slutten av listen System.out.println ('Vector before removal' + v) v.remove (1) System.out.println ('Vector after fjerning '+ v)}}

Produksjon

  • Boolsk fjerningselement ( Objekt obj) - Det sletter elementet med navnet obj (ikke etter indeksnummer)
// Java-kode som viser removeElement () -metoden importerer java.util. * Offentlig klasse Hoved {offentlig statisk ugyldig hoved (String [] args) {Vector v = new Vector () // Den oppretter en standardvektor v.add (1) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av listen v.add ('Fun') // Legger til 'Fun' på slutten av listen System.out.println ('Vector before removal' + v) v.removeElement ('Java') System.out.println ('Vector etter fjerning '+ v)}}

Produksjon

  • Int størrelse () - Den returnerer størrelsen på vektoren.
// Java-kode som viser størrelse () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor v.add (0, 1) // Legger til 1 i indeksen 0 v.add (1, 'Java') // Legger til 'Java' i indeksen 1 v.add (2, 'er') // Adds 'er' i indeksen 2 v.add (3, 'Moro') // Legger til 'Moro' i indeksen 3 System.out.println ('Vektorstørrelsen er' + v.størrelse ())}}

Produksjon

  • Int-kapasitet () - Den returnerer vektorens kapasitet
// Java-kode som viser kapasitet () metode import java.util. * Offentlig klasse Hoved {offentlig statisk ugyldig hoved (String [] args) {Vector v = new Vector () // Den oppretter en standardvektor v.add (0, 1) // Legger til 1 i indeksen 0 v.add (1, 'Java') // Legger til 'Java' i indeksen 1 v.add (2, 'er') // Adds 'er' i indeksen 2 v.add (3, 'Fun') // Legger til 'Fun' i indeksen 3 System.out.println ('Vektorkapasiteten er' + v.capacity ())}}

Produksjon

  • Objekt få (int-indeks) - Det returnerer elementet på gitt posisjon i vektoren
// Java-kode som viser get () -metoden importerer java.util. * Offentlig klasse Hoved {offentlig statisk ugyldig hoved (String [] args) {Vector v = new Vector () // Den oppretter en standardvektor v.add (1) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av listen v.add ('Fun') // Legger til 'Fun' på slutten av listen System.out.println ('Elementet i indeks 1 er' + v.get (1))}}

Produksjon

  • Objekt førstElement () - Det returnerer det første elementet
// Java-kode som viser firstElement () -metoden importerer java.util. * Offentlig klasse Hoved {offentlig statisk ugyldig hoved (String [] args) {Vector v = ny Vector () // Den oppretter en standardvektor v.add (1) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av listen v.add ('Fun') // Legger til 'Fun' på slutten av listen System.out.println ('Det første elementet er' + v.firstElement ())}}

Produksjon

  • Objekt lastElement () - Den returnerer det siste elementet
// Java-kode som viser lastElement () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor v.add (1) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til 'er' på slutten av listen v.add ('Fun') // Legger til 'Fun' på slutten av listen System.out.println ('Det siste elementet er' + v.lastElement ())}}

Produksjon

  • Boolsk er lik (Objekt o) - Den sammenligner vektoren med det spesifiserte objektet for likhet. Det returnerer sant hvis alle elementene er sanne i tilsvarende indekser
// Java-kode som viser boolsk lik () metode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Det skaper en standardvektor Vector vcopy = new Vector () v.add (1) // Legger til 1 på slutten av listen v.add ('Java') // Legger til 'Java' på slutten av listen v.add ('er') // Legg til ' er 'på slutten av listen v.add (' Fun ') // Legger til' Fun 'på slutten av listen vcopy.add (0,1) // Legg til 1 i indeksen 0 vcopy.add (1, 'Java') // Legger til 'Java' i indeksen 1 vcopy.add (2, 'er') // Legg til 'er' i indeksen 2 vcopy.add (3, 'Fun') // Legger til 'Fun' ved indeks 3 vcopy.add (4, '!!!') // Legger til 'Moro' ved indeks 4 hvis (v.equals (vcopy)) System.out.println ('Begge vektorene er like') ellers System .out.println ('Vektorer er ikke like')}}

Produksjon

  • Utgår trimtosize () - Denne metoden fjerner ekstra kapasitet og holder kapasiteten bare for å holde elementene, dvs. lik størrelse
// Java-kode som viser trimToSize () metode import java.util. * Offentlig klasse Hoved {offentlig statisk ugyldig hoved (String [] args) {Vector v = ny Vector () // Den oppretter en standardvektor v.add (0, 1) // Legger til 1 i indeksen 0 v.add (1, 'Java') // Legger til 'Java' i indeksen 1 v.add (2, 'er') // Adds 'er' i indeksen 2 v.add (3, 'Fun') // Legger til 'Fun' i indeksen 3 System.out.println ('Vektorkapasiteten er' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektorkapasiteten er' + v.kapasitet ())}}

Produksjon


Andre viktige metoder

Nå må du ha fått en god ide om hvordan du kan arbeide med vektorer. Hvis du ønsker å utforske flere av vektormetodene, kan du ta en titt på tabellen nedenfor.

Metodenes navn Metodens funksjon

Boolsk er tom ()

sjekker om det finnes elementer eller ikke

Boolsk inneholder (Objekt o)

brukes til å kontrollere eksistensen av et bestemt element, si o

int indexOf (Objekt o)

Den returnerer indeksen til elementet o

void removeRange (int s, int e)

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

ugyldig klart ()

fjerner alle elementene

ugyldig sikre kapasitet (int c)

Det øker kapasiteten med ca.

ugyldig setSize (int s)

Den setter størrelsen til s. Hvis s> størrelse er den ekstra kapasiteten fylt med nullverdier. Hvis s

ObjektelementAt (int a)

returnerer elementet som finnes på indeksnummer a

Objektsett (int a, Object o)

erstatter elementet til stede ved indeksen a med det gitte elementet o

Objekt [] toArray ()

returnerer en matrise som inneholder de samme elementene som vektoren

Objektklon ()

Vektorobjektet kopieres

Boolsk addAll (samling c)

legger til alle elementene i samling c til vektoren

Boolsk addAll (int a, Collection c)

setter inn alle elementene i samlingen c til vektoren ved den spesifiserte indeksen a

Boolsk retainAll (samling c)

beholder alle elementene i vektoren som også finnes i samling c

Liste underliste (int s, int e)

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

Når alle gode ting slutter, er også bloggen vår på Vectors i . Vi håper at vi var i stand til å dekke alle aspektene av java-vektorer i denne bloggen, og at du var i stand til å samle litt kunnskap om vektorer.

dyp kloning og grunne kloning i java

Forsikre deg om at du trener så mye som mulig og tilbakestiller opplevelsen.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'Vectors in Java' artikkel, og vi kommer tilbake til deg så snart som mulig.