Čo je Vector v Jave a ako ho používame?



Tento blog „Vectors in Java“ vám pomôže pochopiť, v čom sa vektorová trieda líši od ArrayList, a pomôže vám dozvedieť sa o rôznych použitých metódach.

Vektory v sú jednou z najbežnejšie používaných dátových štruktúr v programovacom svete.Všetci to vieme Polia sú dátové štruktúry, ktoré uchovávajú údaje lineárne. Vektory tiež ukladajú údaje lineárne, ale na rozdiel od polí nemajú pevnú veľkosť. Namiesto toho je možné ich veľkosť na požiadanie zväčšiť.

Vektorová trieda je podradená trieda AbstractList triedy a realizuje na Zoznam .Aby sme mohli používať vektory, musíme najskôr importovať triedu Vector z balíka java.util:





import java.util.Vector

V tomto článku budeme diskutovať o nasledujúcich konceptoch vektorov:



Začnime!

Výhoda s Vector v Jave

  • Vlastnosť mať dynamickú veľkosť je veľmi užitočná, pretože zabráni plytvaniu pamäťou v prípade, že nepoznáme veľkosť dátová štruktúra v čase vyhlásenia.
  • Keď chceme zmeniť veľkosť našej dátovej štruktúry uprostred programu, vektory sa môžu ukázať ako veľmi užitočné.

Vlastnosť dynamickej veľkosti nie je pre vektory v Jave jedinečná. Iná dátová štruktúra, známa ako ArrayList, tiež ukazuje vlastnosť dynamickej veľkosti. Vektory sa však líšia od ArrayLists z niekoľkých dôvodov:

  • Po prvé, vektory sa synchronizujú, čo mu dáva väčšiu výhodu v porovnaní s existuje riziko poškodenia údajov.
  • Po druhé, vektory majú niektoré staršie funkcie, ktoré je možné implementovať iba na vektory a nie na zoznamy polí.

Ako získať prístup k prvkom vo vektore

K údajovým členom môžeme pristupovať jednoducho pomocou indexu prvku, rovnako ako k prvkom v poliach.



Príklad- Ak chceme získať prístup k tretiemu prvku vo vektore v, jednoducho ho označíme ako v [3].

Vektory Konštruktory

Ďalej je uvedených niekoľko variácií vektora konštruktéri k dispozícii na použitie:

  1. Vektor (int initialCapacity, int Increment) - Vytvorí vektor s danou initialCapacity a jej prírastkom veľkosti.
  2. Vector (int initialCapacity) - Vytvorí prázdny vektor s danou initialCapacity. V tomto prípade je Prírastok nulový.
  3. Vektor () - Vytvorí predvolený vektor kapacity 10.
  4. Vektor (zbierka c) - Vytvorí vektor s danou kolekciou, poradie prvkov je rovnaké ako v prípade, že ju vráti iterátor kolekcie.

Vo vektoroch sú tiež tri chránené parametre

  1. Int capacityIncrement () - Keď sa veľkosť stane väčšou ako kapacita, automaticky sa zvýši kapacita vektora.
  2. Int elementCount () - povedať počet prvkov vo vektore
  3. Objekt [] elementData () - pole, v ktorom sú uložené prvky vektora

Najčastejšie chyby vo vyhlásení o vektoroch

MS SQL návody pre začiatočníkov
  • Vektor hodí IllegalArgumentException ak je počiatočná veľkosť definovaného vektora záporná.
  • Ak je zadaná kolekcia nulová, hodí sa NullPointerException

Poznámka:

  1. Ak vektorový prírastok nie je zadaný, potom bude jeho kapacitazdvojnásobil v každom cykle prírastku.
  2. Kapacita vektora nemôže byť nižšia ako jeho veľkosť, môže sa jej rovnať.

Zoberme si príklad inicializácie vektorových konštruktorov.

Príklad: Inicializácia vektorových konštruktorov

/ Java kód ilustrujúci Vector Constructors import 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 = new Vector (20) // vytvorí vektor danej veľkosti a prírastku Vector v3 = nový Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // vytvorí vektor s daným kolekcia Vector v4 = nový Vector (v2) System.out.println ('Vector v1 kapacity' + v1.capacity ()) System.out.println ('Vector v2 kapacity' + v2.capacity ()) System.out .println ('Vector v3 kapacity' + v3.capacity ()) System.out.println ('Vector v4 kapacity' + v4.capacity ())}

Výkon

Konštruktéri - Vektory v Jave - Edureka

Alokácia vektorov do pamäte

Doteraz ste určite pochopili, že vektory nemajú pevnú veľkosť, ale majú schopnosť dynamicky meniť svoju veľkosť. Jeden by si mohol myslieť, že vektory alokujú neurčitý dlhý priestor na ukladanie objektov. Ale nie je to tak. Vektory môžu meniť svoju veľkosť na základe dvoch polí „kapacita“ a „kapacita“. Pri deklarácii vektora sa pôvodne alokuje veľkosť zodpovedajúca poľu „kapacita“. Môžeme vložiť prvky rovné kapacite. Ale akonáhle je vložený ďalší prvok, zvyšuje sa veľkosť poľa o veľkosť „capacityIncrement“. Preto je schopný dynamicky meniť svoju veľkosť.

Pre predvolený konštruktor , kapacita sa zdvojnásobí vždy, keď je kapacita plná a má sa vložiť nový prvok.

Príklad - Predpokladajme, že máme vektor InitialCapacity 5 a kapacitný prírastok z 2. Takže počiatočná veľkosť vektora je 5 prvkov Do tohto vektora vkladáme jeden po druhom, konkrétne 1,2,3,4,5. Keď sa pokúsime vložiť do vektora ďalší prvok, konkrétne 6, veľkosť vektora sa zvýši o 2. Preto je veľkosť vektora teraz 7. Takže vektor ľahko upraví svoju veľkosť podľa čísla č. prvkov.

Ďalším zaujímavým bodom je, že na rozdiel od polí, vektory neobsahujú skutočné objekty, ale iba odkazy na objekty. Umožňuje teda ukladanie objektov rôznych typov údajov do toho istého vektora.

Metódy vo vektore

Pozrime sa na niekoľko veľmi často používaných vektorových metód.

  • Boolovský prídavok (objekt o) - Pripojí prvok na koniec vektora.
// Kód Java zobrazujúci metódu boolean add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1 ) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu list v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Vektor je' + v)}}

Výkon

  • Void add (int index, E element) - Pridá daný prvok na zadaný index vo vektore
// Kód Java zobrazujúci metódu void add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (0 , 1) // Pridá 1 do indexu 0 v.add (1, „Java“) // Pridá „Java“ do indexu 1 v.add (2, „je“) // Pridá „je“ do indexu 2 v.add (3, 'Fun') // Pridá 'Fun' do indexu 3 v.add (4, '!!!') // Pridá 'Fun' do indexu 4 System.out.println (' Vektor je '+ v)}}

Výkon

  • Boolean Odstrániť (objekt o) - Odstráni odobrať prvok pri danom indexe vo vektore
// Kód Java zobrazujúci metódu boolean remove () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1 ) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu list v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Vektor pred odstránením' + v) v.remove (1) System.out.println ('Vektor po odstránenie '+ v)}}

Výkon

  • Boolean removeElement ( Objekt obj) - Vymaže prvok podľa jeho názvu obj (nie podľa indexového čísla)
// Kód Java zobrazujúci metódu removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu. v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Vektor pred odstránením' + v) v.removeElement ('Java') System.out.println ('Vektor po odstránení + v)}}

Výkon

  • Vnútorná veľkosť () - Vráti veľkosť vektora.
// Kód Java zobrazujúci metódu size () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (0, 1) // Pridá 1 do indexu 0 v.add (1, „Java“) // Pridá „Java“ do indexu 1 v.add (2, „je“) // Pridá „je“ do indexu 2 v.add (3, 'Fun') // Pridá 'Fun' do indexu 3 System.out.println ('Veľkosť vektora je' + v.size ())}}

Výkon

  • Int. Kapacita () - Vráti kapacitu vektora
// Kód Java zobrazujúci metódu kapacity () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (0, 1) // Pridá 1 do indexu 0 v.add (1, „Java“) // Pridá „Java“ do indexu 1 v.add (2, „je“) // Pridá „je“ do indexu 2 v.add (3, 'Fun') // Pridá 'Fun' do indexu 3 System.out.println ('Kapacita vektora je' + v.capacity ())}}

Výkon

  • Získanie objektu (int index) - Vráti prvok na danom mieste vo vektore
// Java kód zobrazujúci import metódy get () java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu. v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Element v indexe 1 je' + v.get (1))}}

Výkon

  • Objekt firstElement () - Vráti prvý prvok
// Kód Java zobrazujúci metódu firstElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu. v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Prvý prvok je' + v.firstElement ())}}

Výkon

  • Objekt lastElement () - Vráti posledný prvok
// Kód Java zobrazujúci metódu lastElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (1) // Pridá 1 na koniec zoznamu v.add („Java“) // Pridá „Java“ na koniec zoznamu v.add („je“) // Pridá „je“ na koniec zoznamu. v.add ('Fun') // Pridá 'Fun' na koniec zoznamu System.out.println ('Posledný prvok je' + v.lastElement ())}}

Výkon

  • Boolean equals (Objekt o) - Porovnáva vektor so zadaným objektom kvôli rovnosti. Vráti hodnotu true, ak sú všetky prvky pravdivé pri svojich zodpovedajúcich indexoch
// Kód Java zobrazujúci metódu boolean equals () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor Vector vcopy = new Vector () v.add (1) // Pridá 1 na koniec zoznamu v.add ('Java') // Pridá 'Java' na koniec zoznamu v.add ('je') // Pridá ' je „na konci zoznamu v.add („ Fun “) // Pridá„ Fun “na koniec zoznamu vcopy.add (0,1) // Pridá 1 na index 0 vcopy.add (1, „Java“) // Pridá výraz „Java“ do indexu 1 vcopy.add (2, „is“) // Pridá výraz „Java“ do indexu 2 vcopy.add (3, „Fun“) // Pridá výraz „Fun“ na indexe 3 vcopy.add (4, '!!!') // Pridá 'Fun' na index 4 if (v.equals (vcopy)) System.out.println ('Oba vektory sú rovnaké') else Systém .out.println ('Vektory si nie sú rovnaké')}}

Výkon

  • Zrušiť trimtosize () - Táto metóda odstraňuje nadbytočnú kapacitu a udržiava kapacitu len na to, aby držala prvky, t
// Kód Java zobrazujúci metódu trimToSize () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvorí predvolený vektor v.add (0, 1) // Pridá 1 do indexu 0 v.add (1, „Java“) // Pridá „Java“ do indexu 1 v.add (2, „je“) // Pridá „je“ do indexu 2 v.add (3, 'Fun') // Pridá 'Fun' do indexu 3 System.out.println ('Kapacita vektora je' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektorová kapacita je' + v.capacity ())}}

Výkon


Ostatné dôležité metódy

Teraz už musíte mať dobrý nápad, ako pracovať s vektormi. Ak chcete preskúmať viac vektorových metód, pozrite si nižšie uvedenú tabuľku.

Názov metódy Funkcia metódy

Boolean isEmpty ()

kontroluje, či prvky existujú alebo nie

Boolean obsahuje (objekt o)

slúži na kontrolu existencie konkrétneho prvku, povedzme o

int indexOf (Objekt o)

Vráti index prvku o

void removeRange (int s, int e)

odstráni prvky z vektora počnúc s a končiace sa (e-1)

prázdne miesto jasné ()

odstráni všetky prvky

void ensureCapacity (int c)

Zvyšuje kapacitu o c

void setSize (int s)

Nastaví veľkosť na s. Ak je veľkosť> veľkosť, doplnková kapacita je vyplnená nulovými hodnotami. Ak s

Element objektu At (int a)

vráti prvok existujúci pod číslom indexu a

Sada objektov (int a, Object o)

nahradí prvok prítomný v indexe a daným prvkom o

Objekt [] toArray ()

vráti pole obsahujúce rovnaké prvky ako vektor

Klon objektu ()

Vektorový objekt sa skopíruje

Boolean addAll (kolekcia c)

pridá všetky prvky kolekcie c do vektora

Boolean addAll (int a, kolekcia c)

nastavenie hadoop na ubuntu

vloží všetky prvky kolekcie c na vektor v zadanom indexe a

Boolean keepAll (kolekcia c)

zachováva všetky prvky vo vektore, ktoré existujú aj v zbierke c

Zoznam sublistov (int s, int e)

vráti prvky ako objekt List, počnúc od s a končiace sa (e-1) z vektora.

Ako sa končí každá dobrá vec, tak skončil aj náš blog o vektoroch v . Dúfame, že sa nám v tomto blogu podarilo pokryť všetky aspekty vektorov java a podarilo sa vám zhromaždiť nejaké poznatky týkajúce sa vektorov.

Určite cvičte čo najviac a obráťte sa na svoje skúsenosti.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Sme tu, aby sme vám pomohli na každom kroku na vašej ceste. Okrem otázok týkajúcich sa tohto rozhovoru pre jazyk java vymýšľame aj študijný program určený pre študentov a profesionálov, ktorí sa chcú stať vývojármi v prostredí Java.

Máte na nás otázku? Uveďte to v sekcii komentárov tohto „Vektory v Jave“. článok a my sa vám ozveme čo najskôr.