Co je Vector v Javě a jak ji používáme?



Tento blog „Vektory v Javě“ vám pomůže pochopit, jak se třída vektorů liší od ArrayList, a pomůže vám seznámit se s různými použitými metodami.

Vektory v jsou jednou z nejčastěji používaných datových struktur ve světě programování.Všichni to víme Pole jsou datové struktury, které uchovávají data lineárně. Vektory také ukládají data lineárně, ale na rozdíl od polí nemají pevnou velikost. Místo toho lze jejich velikost na vyžádání zvětšit.

Vector class je podřízená třída AbstractList třídy a implementuje na Seznam .Abyste mohli používat vektory, musíme nejprve importovat třídu Vector z balíčku java.util:





importovat java.util.Vector

V tomto článku budeme diskutovat o následujících pojmech vektorů:



Začněme!

Výhoda s Vektoru v Javě

  • Vlastnost mít dynamickou velikost je velmi užitečná, protože zamezuje plýtvání pamětí v případě, že neznáme velikost datová struktura v době prohlášení.
  • Když chceme změnit velikost naší datové struktury uprostřed programu, mohou se vektory ukázat jako velmi užitečné.

Vlastnost mít dynamickou velikost není pro vektory v Javě jedinečná. Další datová struktura, známá jako ArrayList, také ukazuje vlastnost mít dynamickou velikost. Vektory se však liší od ArrayLists z několika důvodů:

  • Nejprve jsou vektory synchronizovány, což mu dává výhodu oproti ve srovnání s programy, protože existuje riziko poškození dat.
  • Za druhé, vektory mají některé starší funkce, které lze implementovat pouze na vektory a ne na ArrayLists.

Jak přistupovat k prvkům ve vektoru

K datovým členům můžeme přistupovat jednoduše pomocí indexu prvku, stejně jako přistupujeme k prvkům v polích.



Příklad- Pokud chceme získat přístup k třetímu prvku ve vektoru v, jednoduše jej označíme jako v [3].

Vektory konstruktory

Níže je uvedeno několik variant vektoru konstruktéři k dispozici k použití:

  1. Vector (int initialCapacity, int Increment) - Vytvoří vektor s danou initialCapacity a jeho přírůstkem velikosti.
  2. Vector (int initialCapacity) - Vytvoří prázdný vektor s danou initialCapacity. V tomto případě je přírůstek nulový.
  3. Vektor() - Vytvoří výchozí vektor kapacity 10.
  4. Vektor (kolekce c) - Vytvoří vektor s danou kolekcí, pořadí prvků je stejné jako vrácené iterátorem kolekce.

Ve vektorech jsou také tři chráněné parametry

  1. Int capacityIncrement () - Automaticky zvyšuje kapacitu vektoru, když je velikost větší než kapacita.
  2. Int elementCount () - řekněte počet prvků ve vektoru
  3. Objekt [] elementData () - pole, ve kterém jsou uloženy prvky vektoru

Nejčastější chyby ve deklaraci vektorů

řetězec k dnešnímu dni v Javě
  • Vektor hodí IllegalArgumentException pokud je InitialSize definovaného vektoru záporný.
  • Pokud je zadaná kolekce null, vyvolá NullPointerException

Poznámka:

  1. Pokud není přírůstek vektoru určen, bude jeho kapacitazdvojnásobil v každém cyklu přírůstku.
  2. Kapacita vektoru nemůže být pod velikostí, může se jí rovnat.

Uvažujme příklad inicializace vektorových konstruktorů.

Příklad: Inicializace vektorových konstruktorů

/ Java kód ilustrující 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) // create a vector of given Size and Increment Vector v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // create a vector with given kolekce 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ýstup

Konstruktéři - vektory v Javě - Edureka

Přidělení paměti vektorů

Zatím jste jistě pochopili, že vektory nemají pevnou velikost, ale mají schopnost dynamicky měnit svou velikost. Jeden by si mohl myslet, že vektory přidělují neurčitý dlouhý prostor pro ukládání objektů. Ale není tomu tak. Vektory mohou měnit svou velikost na základě dvou polí „kapacita“ a „kapacita“. Zpočátku se při deklaraci vektoru přidělí velikost pole „kapacita“. Můžeme vložit prvky rovné kapacitě. Ale jakmile je vložen další prvek, zvětší se velikost pole o velikost „capacityIncrement“. Proto je schopen dynamicky měnit svou velikost.

Pro výchozí konstruktor , kapacita se zdvojnásobí, kdykoli je kapacita plná a má se vložit nový prvek.

Příklad - Předpokládejme, že máme vektor InitialCapacity 5 a zvýšení kapacity ze 2. Takže počáteční velikost vektoru je 5 prvků Do tohoto vektoru vkládáme jeden po druhém 5 prvků, konkrétně 1,2,3,4,5. Když se pokusíme vložit do vektoru další prvek, konkrétně 6, velikost vektoru se zvýší o 2. Proto je velikost vektoru nyní 7. Takže vektor snadno upraví svou velikost podle č. prvků.

Dalším zajímavým bodem je, že na rozdíl od polí vektory neobsahují skutečné objekty, ale pouze odkazy na objekty. Umožňuje tedy ukládat objekty různých datových typů do stejného vektoru.

Metody ve vektoru

Podívejme se na několik velmi často používaných vektorových metod.

  • Booleovský doplněk (Objekt o) - Připojí prvek na konec vektoru.
// Kód Java zobrazující metodu boolean add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1 ) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu list v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('Vektor je' + v)}}

Výstup

  • Void add (int Index, E element) - Přidá daný prvek na zadaný index ve vektoru
// Kód Java zobrazující metodu void add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (0 , 1) // Přidá 1 na index 0 v.add (1, 'Java') // Přidá 'Java' na index 1 v.add (2, 'je') // Přidá 'je' na 'index 2 v.add (3, 'Fun') // Přidá 'Fun' na index 3 3 v.add (4, '!!!') // Přidá 'Fun' na index 4 System.out.println (' Vektor je '+ v)}}

Výstup

  • Boolean Remove (objekt o) - Odebere odebrat prvek u daného indexu ve vektoru
// Kód Java zobrazující metodu boolean remove () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1 ) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu list v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('Vector before remove' + v) v.remove (1) System.out.println ('Vector after odstranění '+ v)}}

Výstup

  • Boolean removeElement ( Objekt obj) - Odstraní prvek podle jeho názvu obj (ne podle indexového čísla)
// Kód Java zobrazující metodu removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('Vector before remove' + v) v.removeElement ('Java') System.out.println ('Vector po odstranění '+ v)}}

Výstup

  • Velikost int () - Vrátí velikost vektoru.
// Kód Java zobrazující metodu size () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (0, 1) // Přidá 1 na index 0 v.add (1, 'Java') // Přidá 'Java' na index 1 v.add (2, 'je') // Přidá 'je' na index 2 v.add (3, 'Fun') // Přidá 'Fun' do indexu 3 System.out.println ('Velikost vektoru je' + v.size ())}}

Výstup

  • Int. Kapacita () - Vrátí kapacitu vektoru
// Java kód zobrazující metodu kapacity () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (0, 1) // Přidá 1 na index 0 v.add (1, 'Java') // Přidá 'Java' na index 1 v.add (2, 'je') // Přidá 'je' na index 2 v.add (3, 'Fun') // Přidá 'Fun' na index 3 System.out.println ('Kapacita vektoru je' + v.capacity ())}}

Výstup

  • Získání objektu (int index) - Vrátí prvek na dané pozici ve vektoru
// Java kód zobrazující metodu get () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('Prvek v indexu 1 je' + v.get (1))}}

Výstup

  • Objekt firstElement () - Vrátí první prvek
// Java kód zobrazující metodu firstElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('První prvek je' + v.firstElement ())}}

Výstup

  • Objekt lastElement () - Vrátí poslední prvek
// Kód Java zobrazující metodu lastElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (1) // Přidá 1 na konec seznamu v.add („Java“) // Přidá „Java“ na konec seznamu v.add („je“) // Přidá „je“ na konec seznamu v.add ('Fun') // Přidá 'Fun' na konec seznamu System.out.println ('Poslední prvek je' + v.lastElement ())}}

Výstup

  • Boolean se rovná (Objekt o) - Porovnává vektor se zadaným objektem pro rovnost. Vrátí true, pokud jsou všechny prvky pravdivé na odpovídajících indexech
// Kód Java zobrazující metodu boolean equals () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor Vector vcopy = new Vector () v.add (1) // Přidá 1 na konec seznamu v.add ('Java') // Přidá 'Java' na konec seznamu v.add ('is') // Přidá ' je 'na konci seznamu v.add (' Fun ') // Přidá' Fun 'na konec seznamu vcopy.add (0,1) // Přidá 1 na index 0 vcopy.add (1, 'Java') // Přidá 'Java' do indexu 1 vcopy.add (2, 'is') // Přidá 'je' do indexu 2 vcopy.add (3, 'Fun') // Přidá 'Fun' na indexu 3 vcopy.add (4, '!!!') // Přidá 'Fun' na index 4 if (v.equals (vcopy)) System.out.println ('Oba vektory jsou stejné') else Systém .out.println ('Vektory nejsou stejné')}}

Výstup

  • Zrušit trimtosize () - Tato metoda odebere další kapacitu a udržuje kapacitu jen pro udržení prvků, tj. Stejné velikosti
// Java kód zobrazující metodu trimToSize () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Vytvoří výchozí vektor v.add (0, 1) // Přidá 1 na index 0 v.add (1, 'Java') // Přidá 'Java' na index 1 v.add (2, 'je') // Přidá 'je' na index 2 v.add (3, 'Fun') // Přidá 'Fun' na index 3 System.out.println ('Kapacita vektoru je' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektorová kapacita je' + v.capacity ())}}

Výstup


Další důležité metody

Teď už musíte mít dobrý nápad, jak pracovat s vektory. Pokud chcete prozkoumat více vektorových metod, podívejte se na níže uvedenou tabulku.

Název metody Funkce metody

Boolean isEmpty ()

zkontroluje, zda prvky existují nebo ne

Boolean obsahuje (Objekt o)

slouží ke kontrole existence konkrétního prvku, řekněme o

int indexOf (Objekt o)

Vrátí index prvku o

void removeRange (int s, int e)

odstraní prvky z vektoru počínaje s a končící (e-1)

prázdnota clear ()

odstraní všechny prvky

void ensureCapacity (int c)

Zvyšuje kapacitu o c

void setSize (int s)

Nastaví velikost na s. Pokud je velikost s>, je kapacita navíc vyplněna hodnotami null. Pokud s

Objektový prvek At (int a)

vrací prvek existující pod číslem indexu a

Sada objektů (int a, Object o)

nahradí prvek přítomný v indexu a daným prvkem o

Objekt [] toArray ()

vrací pole obsahující stejné prvky jako vektor

Klon objektu ()

Vektorový objekt je zkopírován

Boolean addAll (kolekce c)

přidá všechny prvky kolekce c do vektoru

Boolean addAll (int a, kolekce c)

příklady tříd a objektů pythonu

vloží všechny prvky kolekce c na vektor v zadaném indexu a

Boolean keepAll (kolekce c)

zachová všechny prvky ve vektoru, které také existují v kolekci c

Seznam sublistů (int s, int e)

vrací prvky jako List objekt, počínaje s a končící (e-1) z vektoru.

Jak končí každá dobrá věc, končí i náš blog o Vectors in . Doufáme, že jsme v tomto blogu dokázali pokrýt všechny aspekty vektorů java a vy jste mohli shromáždit nějaké znalosti týkající se vektorů.

Ujistěte se, že cvičíte co nejvíce a vraťte své zkušenosti.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, abychom se kromě otázek týkajících se tohoto rozhovoru pro javu stali i učebním plánem, který je určen pro studenty a profesionály, kteří chtějí být vývojářem v jazyce Java.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto „Vektory v Javě“ článku a my se vám ozveme co nejdříve.