Wat is Vector in Java en hoe gebruiken we het?



Deze blog over 'Vectors in Java' zal u helpen begrijpen hoe de vectorklasse verschilt van ArrayList en u helpen meer te weten te komen over de verschillende betrokken methoden.

Vectoren in zijn een van de meest gebruikte datastructuren in de programmeerwereld.We weten dat allemaal Arrays zijn datastructuren die de data lineair bevatten. Vectoren slaan de gegevens ook lineair op, maar in tegenstelling tot arrays hebben ze geen vaste grootte. In plaats daarvan kunnen ze op verzoek worden vergroot.

Vectorklasse is een kindklasse van SamenvattingLijst klasse en implementeert op Lijst .Om vectoren te gebruiken, moeten we eerst de klasse Vector importeren uit het pakket java.util:





importeer java.util.Vector

In dit artikel zullen we de volgende concepten van vectoren bespreken:



Laten we beginnen!

Voordeel s van Vector in Java

  • De eigenschap van een dynamische grootte is erg handig omdat het geheugenverspilling voorkomt voor het geval we de grootte van de data structuur op het moment van aangifte.
  • Als we de grootte van onze datastructuur midden in een programma willen veranderen, kunnen vectoren erg handig blijken te zijn.

De eigenschap van een dynamische grootte is niet uniek voor Vectors in Java. Een andere gegevensstructuur, bekend als ArrayList, toont ook de eigenschap van een dynamische grootte. Vectoren verschillen echter van ArrayLists om een ​​aantal redenen:

  • Ten eerste worden vectoren gesynchroniseerd, wat het een voordeel geeft ten opzichte van in vergelijking met programma's omdat er risico's zijn op gegevensbeschadiging.
  • Ten tweede hebben Vectors een aantal oudere functies die alleen op vectoren kunnen worden geïmplementeerd en niet op ArrayLists.

Toegang krijgen tot elementen in Vector

We hebben eenvoudig toegang tot de gegevensleden door de index van het element te gebruiken, net zoals we toegang hebben tot de elementen in Arrays.



Voorbeeld- Als we toegang willen krijgen tot het derde element in een vector v, noemen we het eenvoudig v [3].

Vectors Constructeurs

Hieronder staan ​​de veelvoudige variaties van vector constructeurs Beschikbaar om te gebruiken:

  1. Vector (int initialCapacity, int Increment) - Construeert een vector met gegeven initiaalcapaciteit en zijn toename in grootte.
  2. Vector (int initialCapacity) - Construeert een lege vector met gegeven initialCapacity. In dit geval is Increment nul.
  3. Vector() - Construeert een standaardvector met capaciteit 10.
  4. Vector (collectie c) - Construeert een vector met een bepaalde verzameling, de volgorde van de elementen is dezelfde als die wordt geretourneerd door de iterator van de verzameling.

Er zijn ook drie beschermde parameters in vectoren

samenvoegen sorteer c ++ code
  1. Int capacityIncrement () - Het verhoogt automatisch de capaciteit van de vector wanneer de grootte groter wordt dan de capaciteit.
  2. Int elementCount () - vertel het aantal elementen in de vector
  3. Object [] elementData () - array waarin elementen van vector worden opgeslagen

Meest voorkomende fouten in de declaratie van vectoren

  • Vector gooit een IllegalArgumentException als de InitialSize van de gedefinieerde vector negatief is.
  • Als de opgegeven verzameling null is, gooit het NullPointerException

Opmerking:

  1. Als de vectorincrement niet is opgegeven, is de capaciteit dat welverdubbeld in elke stapcyclus.
  2. De capaciteit van een vector mag niet kleiner zijn dan de grootte, deze mag er gelijk aan zijn.

Laten we eens kijken naar een voorbeeld van het initialiseren van Vectors Constructors.

Voorbeeld: initialiseren van vectorconstructors

/ Java-code die Vector Constructors illustreert importeer java.util. * Public class Main {public static void main (String [] args) {// create default vector Vector v1 = new Vector () // maak een vector met de gegeven grootte Vector v2 = nieuwe vector (20) // maak een vector met een gegeven grootte en oplopende vector v3 = nieuwe vector (30,10) v2.add (100) v2.add (100) v2.add (100) // maak een vector met gegeven collectie Vector v4 = nieuwe Vector (v2) System.out.println ('Vector v1 van capaciteit' + v1.capacity ()) System.out.println ('Vector v2 van capaciteit' + v2.capacity ()) System.out .println ('Vector v3 van capaciteit' + v3.capacity ()) System.out.println ('Vector v4 van capaciteit' + v4.capacity ())}

Uitvoer

Constructeurs - Vectoren in Java - Edureka

Geheugentoewijzing van vectoren

Tot dusverre moet u hebben begrepen dat vectoren geen vaste grootte hebben, maar in plaats daarvan de mogelijkheid hebben om hun grootte dynamisch te wijzigen. Je zou kunnen denken dat de vectoren een onbepaalde lange ruimte toewijzen om objecten op te slaan. Maar dit is niet het geval. Vectoren kunnen hun grootte veranderen op basis van twee velden ‘capaciteit’ en ‘capaciteitsverhoging’. In eerste instantie wordt een grootte gelijk aan het veld ‘capaciteit’ toegewezen wanneer een vector wordt gedeclareerd. We kunnen de elementen invoegen gelijk aan de capaciteit. Maar zodra het volgende element wordt ingevoegd, vergroot het de grootte van de array met grootte ‘capacityIncrement’. Daarom is het in staat om de grootte dynamisch te veranderen.

Voor een standaard constructor , wordt de capaciteit verdubbeld wanneer de capaciteit vol is en er een nieuw element moet worden geplaatst.

Voorbeeld - Stel dat we een vector hebben met InitialCapacity 5 en capaciteitsverhoging van 2. Dus de initiële grootte van de vector is 5 elementen. We voegen een voor een 5 elementen in deze vector in, namelijk 1,2,3,4,5. Wanneer we proberen om een ​​ander element in de vector in te voegen, namelijk 6, wordt de grootte van de vector verhoogd met 2. De grootte van de vector is nu dus 7. Dus de vector past zijn grootte gemakkelijk aan volgens het nr. van elementen.

Een ander interessant punt is dat vectoren, in tegenstelling tot arrays, geen echte objecten bevatten, maar alleen verwijzingen naar de objecten. Daarom kunnen objecten van verschillende gegevenstypen in dezelfde vector worden opgeslagen.

Methoden in Vector

Laten we eens kijken naar enkele zeer vaak gebruikte vectormethoden.

  • Boolean add (Object o) - Het voegt een element toe aan het einde van de vector.
// Java-code toont boolean add () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1 ) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de list v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('The vector is' + v)}}

Uitvoer

  • Ongeldig toevoegen (int Index, E-element) - Het voegt het gegeven element toe aan de gespecificeerde index in de vector
// Java-code toont void add () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (0 , 1) // Voegt 1 toe aan de index 0 v.add (1, 'Java') // Voegt 'Java' toe aan de index 1 v.add (2, 'is') // Voegt 'is' toe aan de index 2 v.add (3, 'Fun') // Voegt 'Fun' toe aan de index 3 v.add (4, '!!!') // Voegt 'Fun' toe aan de index 4 System.out.println (' De vector is '+ v)}}

Uitvoer

  • Boolean Remove (object o) - Het verwijdert het element bij de opgegeven index in de vector
// Java-code toont boolean remove () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1 ) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de list v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('Vector before removal' + v) v.remove (1) System.out.println ('Vector after verwijdering '+ v)}}

Uitvoer

  • Boolean removeElement ( Object obj) - Het verwijdert het element met zijn naam obj (niet op indexnummer)
// Java-code toont removeElement () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de lijst v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('Vector before removal' + v) v.removeElement ('Java') System.out.println ('Vector na verwijdering '+ v)}}

Uitvoer

  • Int maat () - Het geeft de grootte van de vector terug.
// Java-code toont size () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (0, 1) // Voegt 1 toe aan de index 0 v.add (1, 'Java') // Voegt 'Java' toe aan de index 1 v.add (2, 'is') // Voegt 'is' toe aan de index 2 v.add (3, 'Fun') // Voegt 'Fun' toe aan de index 3 System.out.println ('De vectorgrootte is' + v.size ())}}

Uitvoer

  • Int Capaciteit () - Het geeft de capaciteit van de vector terug
// Java-code toont capacity () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (0, 1) // Voegt 1 toe aan de index 0 v.add (1, 'Java') // Voegt 'Java' toe aan de index 1 v.add (2, 'is') // Voegt 'is' toe aan de index 2 v.add (3, 'Fun') // Voegt 'Fun' toe aan de index 3 System.out.println ('De vectorcapaciteit is' + v.capacity ())}}

Uitvoer

  • Object get (int index) - Het retourneert het element op de opgegeven positie in de vector
// Java-code toont de methode get () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de lijst v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('Het element bij index 1 is' + v.get (1))}}

Uitvoer

  • Object firstElement () - Het geeft het eerste element terug
// Java-code toont firstElement () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de lijst v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('Het eerste element is' + v.firstElement ())}}

Uitvoer

  • Object lastElement () - Het geeft het laatste element terug
// Java-code toont lastElement () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (1) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'is' toe aan het einde van de lijst v.add ('Fun') // Voegt 'Fun' toe aan het einde van de lijst System.out.println ('Het laatste element is' + v.lastElement ())}}

Uitvoer

  • Boolean is gelijk aan (Object o) - Het vergelijkt de vector met het opgegeven object voor gelijkheid. Het retourneert waar als alle elementen waar zijn op hun overeenkomstige indices
// Java-code toont boolean equals () methode import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het creëert een standaard vector Vector vcopy = new Vector () v.add (1) // Voegt 1 toe aan het einde van de lijst v.add ('Java') // Voegt 'Java' toe aan het einde van de lijst v.add ('is') // Voegt 'toe is 'aan het einde van de lijst v.add (' Fun ') // Voegt' Fun 'toe aan het einde van de lijst vcopy.add (0,1) // Voegt 1 toe aan de index 0 vcopy.add (1, 'Java') // Voegt 'Java' toe aan de index 1 vcopy.add (2, 'is') // Adds 'is' aan de index 2 vcopy.add (3, 'Fun') // Voegt 'Fun' toe bij de index 3 vcopy.add (4, '!!!') // Voegt 'Fun' toe aan de index 4 if (v.equals (vcopy)) System.out.println ('Beide vectoren zijn gelijk') else Systeem .out.println ('Vectoren zijn niet gelijk')}}

Uitvoer

  • Ongeldige trimtosize () - Deze methode verwijdert extra capaciteit en houdt de capaciteit om de elementen vast te houden, d.w.z. gelijk aan de grootte
// Java-code toont de methode trimToSize () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Het maakt een standaardvector v.add (0, 1) // Voegt 1 toe aan de index 0 v.add (1, 'Java') // Voegt 'Java' toe aan de index 1 v.add (2, 'is') // Voegt 'is' toe aan de index 2 v.add (3, 'Fun') // Voegt 'Fun' toe aan de index 3 System.out.println ('De vectorcapaciteit is' + v.capacity ()) v.trimToSize () System.out.println ( 'De vectorcapaciteit is' + v.capacity ())}}

Uitvoer


Andere belangrijke methoden

U moet nu een goed idee hebben over het werken met vectoren. Als u meer van de vectormethoden wilt verkennen, bekijk dan de onderstaande tabel.

Naam van de methode Functie van de methode

Boolean isEmpty ()

controleert of er elementen bestaan ​​of niet

Boolean bevat (Object o)

gebruikt om het bestaan ​​van een specifiek element te controleren, zeg o

int indexOf (Object o)

Het geeft de index van het element o terug

void removeRange (int s, int e)

verwijdert elementen uit de vector beginnend bij s en eindigend met (e-1)

leegte duidelijk ()

verwijdert alle elementen

void sureCapacity (int c)

c ++ sorteermatrices

Het vergroot de capaciteit met c

leegte setSize (int s)

Het stelt de maat in op s. Als de grootte s>, wordt de extra capaciteit gevuld met nulwaarden. Als s

wat is het verschil tussen javascript en jQuery

Object elementAt (int a)

geeft het element terug dat bestaat bij indexnummer a

Objectset (int a, Object o)

vervangt het element aanwezig op de index a door het gegeven element o

Object [] toArray ()

geeft een array terug die dezelfde elementen bevat als de vector

Object kloon ()

Het vectorobject wordt gekopieerd

Boolean addAll (verzameling c)

voegt alle elementen van Collectie c toe aan de vector

Boolean addAll (int a, Collection c)

voegt alle elementen van Collection in c naar de vector op de gespecificeerde index a

Boolean keepAll (verzameling c)

behoudt alle elementen in de vector die ook in Collectie c voorkomen

Lijst subList (int s, int e)

geeft de elementen terug als een List-object, beginnend bij s en eindigend met (e-1) van de vector.

Aan al het goede komt een einde, zo ook onze blog over Vectors in . We hopen dat we alle aspecten van java-vectoren in deze blog hebben kunnen behandelen en dat je wat kennis hebt kunnen vergaren over vectoren.

Zorg ervoor dat je zoveel mogelijk oefent en terugkeert naar je ervaring.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen ook een curriculum te bedenken dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze ‘Vectoren in Java’ artikel en we nemen zo snel mogelijk contact met u op.