Mi a Vector a Java-ban, és hogyan használjuk?



Ez a „Vektorok a Java-ban” című blog segít megérteni, hogy a vektor osztály miben különbözik az ArrayList-től, és segít megismerni a különböző módszereket.

Vektorok a programozási világ egyik leggyakrabban használt adatstruktúrája.Ezt mind tudjuk Tömbök olyan adatszerkezetek, amelyek lineáris módon tárolják az adatokat. A vektorok lineáris módon is tárolják az adatokat, de a tömbökkel ellentétben nincs rögzített méretük. Ehelyett méretük igény szerint növelhető.

A Vector osztály a gyermek osztálya AbstractList osztály és végrehajtja Lista .A Vektorok használatához először be kell importálnunk a Vector osztályt a java.util csomagból:





import java.util.Vector

Ebben a cikkben a vektorok következő fogalmait tárgyaljuk:



Lássunk neki!

Előny s vektor Java-ban

  • A dinamikus méret tulajdonsága nagyon hasznos, mivel elkerüli a memória pazarlását abban az esetben, ha nem ismerjük a memória méretét. adatszerkezet a nyilatkozat időpontjában.
  • Amikor egy program közepén meg akarjuk változtatni az adatstruktúránk méretét, a vektorok nagyon hasznosnak bizonyulhatnak.

A dinamikus méret tulajdonsága nem csak a Java vektorainak jellemzője. Egy másik adatstruktúra, az ArrayList néven is bemutatja a dinamikus méret tulajdonságát. A vektorok azonban néhány ok miatt különböznek az ArrayLists-től:

  • Először is, a vektorokat szinkronizálják, ami előnyt jelent számára összehasonlítva programokat, mivel fennáll az adatkorrupció veszélye.
  • Másodszor, a vektoroknak vannak olyan örökölt funkciói, amelyek csak vektorokon valósíthatók meg, az ArrayLists-en nem.

Hogyan lehet elérni az elemeket a vektorban

Az adattagokhoz egyszerűen hozzáférhetünk az elem indexének használatával, ahogyan a tömbökhöz is.



Példa- Ha egy v vektor harmadik eleméhez szeretnénk hozzáférni, akkor egyszerűen v [3] -ként hivatkozunk rá.

Vektorok Konstruktorok

Az alábbiakban felsoroljuk a vektor több változatát kivitelezők használható:

  1. Vektor (int kezdeti kapacitás, int növekmény) - Konstruál egy vektort adott kezdeti kapacitással és annak növekményével.
  2. Vektor (int kezdeti kapacitás) - Egy üres vektort készít a megadott kezdeti kapacitással. Ebben az esetben a növekmény nulla.
  3. Vektor() - Felépít egy alapértelmezett 10-es kapacitású vektort.
  4. Vektor (c gyűjtemény) - Vektort szerkeszt egy adott gyűjteménygel, az elemek sorrendje megegyezik a gyűjtemény iterátorának eredményével.

Három védett paraméter is van a vektorokban

  1. Int kapacitásInkrementum () - Automatikusan növeli a vektor kapacitását, amikor a méret nagyobb lesz, mint a kapacitás.
  2. Int elementCount () - megmondja a vektor elemeinek számát
  3. Object [] elementData () - tömb, amelyben a vektor elemei vannak tárolva

A leggyakoribb hibák a vektorok deklarálásában

  • Vektor dob egy IllegalArgumentException ha a definiált vektor InitialSize negatív.
  • Ha a megadott gyűjtemény null, akkor dob NullPointerException

Jegyzet:

  1. Ha a vektor növekménye nincs megadva, akkor annak kapacitása meg leszminden növekedési ciklusban megduplázódott.
  2. Egy vektor kapacitása nem lehet alacsonyabb a méretnél, egyenlő lehet vele.

Vegyünk egy példát a Vektorok Konstruktorainak inicializálására.

Példa: Vektor konstruktorok inicializálása

/ A Vector Constructorokat illusztráló Java kód importálja a java.util. * Public class Main {public static void main (String [] args) {// alapértelmezett vektor létrehozása v1 = new Vector () // adott vektor vektor létrehozása v2 = new Vector (20) // adott méret és növekmény vektor létrehozása v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // vektor létrehozása adott gyűjtemény v4 = új vektor (v2) System.out.println ('kapacitás v1 v1. kapacitás ()] System.out.println (' kapacitás v2 v2. kapacitás ()) System.out .println ('Kapacitás v3 v3. kapacitás ()] System.out.println (' Kapacitás v4 v4. kapacitás + v4.kapacitás ())}

Kimenet

Konstruktorok - vektorok Java-ban - Edureka

A vektorok memória-allokációja

Eddig biztosan megértette, hogy a vektoroknak nincs rögzített mérete, ehelyett képesek méretüket dinamikusan megváltoztatni. Azt gondolhatnánk, hogy a vektorok határozatlan hosszú helyet foglalnak el az objektumok tárolására. De ez nem így van. A vektorok két „kapacitás” és „kapacitás-elem” mező alapján változtathatják méretüket. Kezdetben a „kapacitás” mezővel megegyező méretet osztanak ki egy vektor deklarálásakor. A kapacitással megegyező elemeket beszúrhatjuk. De amint a következő elem beillesztésre kerül, a tömb méretét a ’capacityIncrement’ méret szerint növeli. Ezért képes dinamikusan változtatni a méretén.

A alapértelmezett konstruktor , a kapacitás megduplázódik, ha a kapacitás megtelik és új elemet kell beilleszteni.

Példa - Tegyük fel, hogy van egy vektorunk az InitialCapacity 5 és kapacitásInkrement A vektor kezdeti mérete 5 elem. Ebbe a vektorba egyenként 5 elemet illesztünk be, nevezetesen 1,2,3,4,5. Amikor megpróbálunk egy másik elemet beilleszteni a vektorba, mégpedig a 6-ba, akkor a vektor méretét 2-gyel növeljük. Ezért a vektor mérete most 7. Tehát a vektor könnyen beállítja méretét a nem. elemekből.

Egy másik érdekes szempont, hogy a tömböktől eltérően a vektorok nem tartalmaznak valós objektumokat, csak hivatkozásokat mutatnak az objektumokra. Ezért lehetővé teszi a különböző adattípusú objektumok tárolását ugyanabban a vektorban.

Módszerek a vektorban

Vessünk egy pillantást néhány nagyon gyakran használt vektoros módszerre.

különbség a html és az xml között
  • Logikai hozzáadás (o objektum) - A vektor végén egy elemet fűz hozzá.
// Java kód, amely logikai add () metódust mutat be, importálja a java.util. * Public class Main {public static void main (String [] argumentum) {Vector v = new Vector () // Alapértelmezett v.add (1) vektort hoz létre ) // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java-t a lista végéhez v.add (' is ') // Hozzáadja' is 'a list v.add ('Fun') // A 'Fun' szót hozzáadja a System.out.println lista végéhez ('A vektor' + v)}}

Kimenet

  • Void add (int Index, E elem) - Hozzáadja az adott elemet a vektor meghatározott indexéhez
// void add () metódust bemutató Java-kód import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (0) vektort hoz létre , 1) // Hozzáad 1-et a 0 indexhez v.add (1, 'Java') // Hozzáadja a 'Java' -t az 1-es indexhez v.add (2, 'is') // Hozzáadja 'is' az indexhez 2 v.add (3, 'Fun') // A 'Fun' szót hozzáadja az indexhez 3 v.add (4, '!!!') // A 'Fun' szót hozzáadja a 4 indexhez System.out.println (' A vektor '+ v)}}

Kimenet

  • Logikai eltávolítás (o objektum) - Eltávolítja az elem eltávolítását az adott indexnél a vektorban
// Boolean remove () metódust bemutató Java-kód importálja a java.util. * Public class Main {public static void main (String [] argumentum) {Vector v = new Vector () // Alapértelmezett v.add (1) vektort hoz létre ) // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java-t a lista végéhez v.add (' is ') // Hozzáadja' is 'a list v.add ('Fun') // A 'Fun' szót hozzáadja a lista végéhez System.out.println ('Vektor eltávolítás előtt' + v) v.remove (1) System.out.println ('Vektor után eltávolítás '+ v)}}

Kimenet

  • Logikai eltávolításElement ( Objektum objektum) - Az elemet az objektum nevével törli (nem indexszám szerint)
// Java-kód, amely az removeElement () metódust mutatja be, importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (1) vektort hoz létre // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java' -t a lista végéhez v.add ('is') // Hozzáadja 'is' a lista végén v.add ('Fun') // A 'Fun' szót hozzáadja a lista végéhez System.out.println ('Vektor eltávolítás előtt' + v) v.removeElement ('Java') System.out.println ('Vektor eltávolítás után '+ v)}}

Kimenet

  • Int méret () - Visszaadja a vektor méretét.
// Java-kód, amely a size () metódust mutatja, importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (0, 1) // Hozzáad 1-et a 0 indexhez v.add (1, 'Java') // Hozzáadja a 'Java' -t az 1-es indexhez v.add (2, 'is') // Hozzáadja 'is' az indexhez 2 v.add (3, 'Fun') // A 'Fun' szót hozzáadja a 3 indexhez System.out.println ('A vektor mérete' + v.size ())}}

Kimenet

  • Int kapacitás () - Visszaadja a vektor kapacitását
// Java kapacitás () metódust bemutató Java kód importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (0, 1) // Hozzáad 1-et a 0 indexhez v.add (1, 'Java') // Hozzáadja a 'Java' -t az 1-es indexhez v.add (2, 'is') // Hozzáadja 'is' az indexhez 2 v.add (3, 'Fun') // A 'Fun' szót hozzáadja a 3 indexhez System.out.println ('A vektor kapacitása' + v.capacity ())}}

Kimenet

  • Object get (int index) - Visszaadja az elemet a vektor adott helyzetében
// Java kód, amely megmutatja a get () metódust importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add vektort hoz létre (1) // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java' -t a lista végéhez v.add ('is') // Hozzáadja 'is' a lista végén v.add ('Fun') // A 'Fun' elemet hozzáadja a System.out.println lista végéhez ('Az 1. indexben lévő elem' + v.get (1))}}

Kimenet

  • Object firstElement () - Visszaadja az első elemet
// Java kód, amely az firstElement () metódust mutatja be, importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (1) vektort hoz létre // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java' -t a lista végéhez v.add ('is') // Hozzáadja 'is' a lista végén v.add ('Fun') // A 'Fun' szót hozzáadja a System.out.println lista végéhez ('Az első elem' + v.firstElement ())}}

Kimenet

  • Object lastElement () - Visszaadja az utolsó elemet
// a lastElement () metódust bemutató Java-kód importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (1) vektort hoz létre // Hozzáad 1-et a lista végéhez v.add ('Java') // Hozzáadja a 'Java' -t a lista végéhez v.add ('is') // Hozzáadja 'is' a lista végén v.add ('Fun') // A 'Fun' szót hozzáadja a System.out.println lista végéhez ('Az utolsó elem' + v.lastElement ())}}

Kimenet

  • Logikai egyenlő (o objektum) - Összehasonlítja a vektort a megadott objektummal az egyenlőség érdekében. Akkor tér vissza igazra, ha minden elem igaz a megfelelő indexüknél
// A logikai egyenlőségű () metódust bemutató Java-kód importálja a java.util. * Public class Main {public static void main (String [] argumentum) {Vector v = new Vector () // Alapértelmezett vektort hoz létre vcopy = new Vector () v.add (1) // 1-et ad hozzá a lista végéhez v.add ('Java') // Hozzáadja a 'Java' -t a lista végéhez v.add ('is') // Hozzáad ' van 'a v.add (' Fun ') lista végén // hozzáadja a' Fun 'szót a lista végén vcopy.add (0,1) // 1-et ad hozzá a 0 indexhez vcopy.add (1, 'Java') // A 'Java' hozzáadása az 1. indexhez vcopy.add (2, 'is') // A 'Adds' van 'a 2. indexhez vcopy.add (3,' Fun ') // Hozzáadja a' Fun 'szót a 3. indexen vcopy.add (4, '!!!') // A 'Fun' szót hozzáadja a 4. indexhez, ha (v.equals (vcopy)) System.out.println ('Mindkét vektor egyenlő') else Rendszer .out.println ('A vektorok nem egyenlőek')}}

Kimenet

  • Void trimtosize () - Ez a módszer eltávolítja az extra kapacitást, és csak azért tartja meg a kapacitást, hogy megtartsa az elemeket, azaz megegyezik a méretével
// a trimToSize () metódust bemutató Java-kód importálja a java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Alapértelmezett v.add (0, 1) // Hozzáad 1-et a 0 indexhez v.add (1, 'Java') // Hozzáadja a 'Java' -t az 1-es indexhez v.add (2, 'is') // Hozzáadja 'is' az indexhez 2 v.add (3, 'Fun') // A 'Fun' szót hozzáadja a 3 indexhez System.out.println ('A vektor kapacitása' + v.capacity ()) v.trimToSize () System.out.println ( 'A vektor kapacitása' + v.kapacitás ())}}

Kimenet


Egyéb fontos módszerek

Mostanra biztosan van egy jó ötlete, hogyan kell működni a vektorokkal. Ha többet szeretne megismerni a vektoros módszerekről, akkor nézze meg az alábbi táblázatot.

A módszer neve A módszer funkciója

Logikai isEmpty ()

ellenőrzi, hogy vannak-e elemek vagy sem

A logikai elem tartalmazza az (o objektumot)

egy adott elem létezésének ellenőrzésére szolgál, mondjuk o

int indexOf (o objektum)

Visszaadja az o elem indexét

void removeRange (int s, int e)

eltávolítja az elemeket a vektorból, kezdve s-től kezdve (e-1)

void clear ()

eltávolítja az összes elemet

void užtikrintiCapacity (int c)

C-vel növeli a kapacitást

void setSize (int s)

A méretet s-re állítja. Ha az s> méret, akkor az extra kapacitás null értékekkel töltődik fel. Ha s

Object elementAt (int a)

az a indexszámnál meglévő elemet adja vissza

Objektumkészlet (int a, Object o)

az a indexen található elemet az adott o elemre cseréli

Object [] toArray ()

hogyan lehet duplán leadni az int java-t

egy tömböt ad vissza, amely ugyanazokat az elemeket tartalmazza, mint a vektor

Objektumklón ()

A vektor objektum átmásolásra kerül

Logikai addAll (c gyűjtemény)

hozzáadja a c gyűjtemény összes elemét a vektorhoz

Logikai addAll (int a, c gyűjtemény)

beszúrja a Gyűjtemény összes elemét c a megadott indexű vektorhoz a

Boolean retainAll (c gyűjtemény)

megtartja a vektor összes elemét, amely a c gyűjteményben is létezik

Lista alLista (int s, int e)

az elemeket, mint List objektumot adja vissza, s-től kezdve és a vektor (e-1) -jével végződik.

Ahogy minden jó dolog véget ér, úgy a blogunk is a Vectors in oldalon . Reméljük, hogy a java vektorok minden aspektusáról tudtunk foglalkozni ebben a blogban, és Ön képes volt összegyűjteni néhány ismeretet a vektorokkal kapcsolatban.

Győződjön meg arról, hogy a lehető legtöbbet gyakorolja, és állítsa vissza a tapasztalatait.

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk az utazás minden lépésében, hogy e java interjúk kérdése mellett a tananyagot kitaláljuk olyan hallgatók és szakemberek számára, akik Java fejlesztők szeretnének lenni.

Van egy kérdésünk? Kérjük, említse meg a „Vektorok a Java-ban” megjegyzés szakaszában cikket, és a lehető leghamarabb kapcsolatba lépünk Önnel.