Kas yra „Vector“ programoje „Java“ ir kaip mes ją naudojame?



Šis tinklaraštis „Java vektoriai“ padės suprasti, kuo vektorinė klasė skiriasi nuo „ArrayList“, ir sužinoti daugiau apie įvairius metodus.

Vektoriai yra viena iš dažniausiai naudojamų duomenų struktūrų programavimo pasaulyje.Mes visi tai žinome Masyvai yra duomenų struktūros, kurios duomenis laiko linijiniu būdu. Vektoriai taip pat saugo duomenis linijiniu būdu, tačiau, skirtingai nuo masyvų, jie neturi fiksuoto dydžio. Vietoj to, jų dydį galima padidinti pagal pareikalavimą.

Vektorių klasė yra vaikų klasė AbstractList klasę ir įgyvendina Sąrašas .Norėdami naudoti „Vektorius“, pirmiausia turime importuoti „Vector“ klasę iš paketo java.util:



importuoti java.util.Vector

Šiame straipsnyje aptarsime šias vektorių sąvokas:



Pradėkime!

Privalumas „Vector“ Java

  • Dinaminio dydžio savybė yra labai naudinga, nes taip išvengiama atminties švaistymo, jei nežinome, kokio dydžio duomenų struktūra deklaravimo metu.
  • Kai norime pakeisti savo duomenų struktūros dydį programos viduryje, vektoriai gali pasirodyti labai naudingi.

Dinaminio dydžio savybė nėra būdinga „Java“ vektoriams. Kita duomenų struktūra, žinoma kaip „ArrayList“, taip pat parodo dinaminio dydžio savybę. Tačiau vektoriai skiriasi nuo „ArrayLists“ dėl kelių priežasčių:

  • Pirma, vektoriai yra sinchronizuojami, o tai suteikia pranašumų palyginti su programas, nes yra duomenų korupcijos pavojus.
  • Antra, vektoriai turi tam tikras senas funkcijas, kurias galima įgyvendinti tik vektoriuose, o ne „ArrayLists“.

Kaip pasiekti elementus vektoriuje

Mes galime prieiti prie duomenų narių paprasčiausiai naudodami elemento rodyklę, kaip ir elementai prie masyvų.



Pavyzdys- Jei norime patekti į trečiąjį vektoriaus v elementą, jį paprasčiausiai vadiname v [3].

Vektoriai Konstruktoriai

Žemiau išvardyti keli vektoriaus variantai konstruktoriai galima naudoti:

  1. Vektorius (int initialCapacity, int Increment) - Sukuria vektorių su pradiniu pajėgumu ir jo prieaugiu.
  2. Vektorius (int initialCapacity) - Sukuria tuščią vektorių su pradine talpa. Šiuo atveju prieaugis yra lygus nuliui.
  3. Vektorius () - Sukuria numatytąjį 10 talpos vektorių.
  4. Vektorius (c kolekcija) - Konstruoja vektorių su tam tikra kolekcija, elementų tvarka yra tokia pati, kokią grąžina kolekcijos iteratorius.

Vektoriuose taip pat yra trys apsaugoti parametrai

  1. Vidutinis pajėgumas: padidėjimas () - Jis automatiškai padidina vektoriaus talpą, kai dydis tampa didesnis nei talpa.
  2. Int elementCount () - pasakyti vektoriaus elementų skaičių
  3. Object [] elementData () - masyvas, kuriame saugomi vektoriaus elementai

Dažniausios vektorių deklaravimo klaidos

  • Vektorius meta Neteisėtas argumentas. Išimtis jei apibrėžto vektoriaus InitialSize yra neigiamas.
  • Jei nurodyta kolekcija yra niekinė, ji meta „NullPointerException“

Pastaba:

  1. Jei vektoriaus prieaugis nenurodytas, jo talpa buspadvigubėjo per kiekvieną prieaugio ciklą.
  2. Vektoriaus talpa negali būti mažesnė už dydį, ji gali jam prilygti.

Panagrinėkime vektorių konstruktorių inicijavimo pavyzdį.

Pavyzdys: vektorinių konstruktorių inicijavimas

/ „Java“ kodas, iliustruojantis „Vector Constructors“, importuoja java.util. * Public class Main {public static void main (String [] args) {// sukurti numatytąjį vektorių vektorių v1 = new Vector () // sukurti nurodyto dydžio vektorių v2 = naujas vektorius (20) // sukuria nurodyto dydžio ir prieaugio vektorių v3 = naujas vektorius (30,10) v2.add (100) v2.add (100) v2.add (100) // sukuria vektorių su duotu kolekcija Vektorius v4 = naujas vektorius (v2) System.out.println ('Talpos vektorius v1 + v1.capacity ()) System.out.println (' Talpos vektorius v2 + talpa ()} System.out .println („talpos vektorius v3“ + v3.capacity ()) System.out.println („talpos vektorius v4“ + v4.capacity ())}

Rezultatas

Konstruktoriai - „Java“ vektoriai - „Edureka“

Vektorių atminties paskirstymas

Iki šiol jūs turėjote suprasti, kad vektoriai neturi fiksuoto dydžio, o gali dinamiškai keisti savo dydį. Galima pagalvoti, kad vektoriai objektams laikyti skiria neapibrėžtą ilgą erdvę. Bet taip nėra. Vektoriai gali pakeisti savo dydį, remdamiesi dviem laukais - „pajėgumas“ ir „pajėgumo padidėjimas“. Iš pradžių „talpos“ laukui lygus dydis paskiriamas, kai deklaruojamas vektorius. Mes galime įterpti elementus, lygius talpai. Bet kai tik įterpiamas kitas elementas, jis padidina masyvo dydį pagal dydį „capacityIncrement“. Taigi jis gali dinamiškai pakeisti savo dydį.

Dėl numatytasis konstruktorius , talpa padvigubėja, kai talpa yra pilna ir reikia įterpti naują elementą.

Pavyzdys - Tarkime, kad turime „InitialCapacity 5“ ir talpaPadidėjimas iš 2. Taigi pradinis vektoriaus dydis yra 5 elementai. Į šį vektorių įterpiame po 5 elementus po vieną, būtent 1,2,3,4,5. Kai bandysime įterpti kitą elementą į vektorių, būtent 6, vektoriaus dydis bus padidintas 2. Taigi vektoriaus dydis dabar yra 7. Taigi vektorius lengvai pakoreguoja savo dydį pagal Nr. elementų.

Kitas įdomus dalykas yra tas, kad skirtingai nuo masyvų, vektoriuose nėra tikrų objektų, o tik nuorodos į objektus. Vadinasi, tai leidžia skirtingų duomenų tipų objektus laikyti tame pačiame vektoriuje.

Metodai vektoriuje

Pažvelkime į kelis labai dažnai naudojamus vektorinius metodus.

ng-change vs onchange
  • Bulio loginis pridėjimas (o objektas) - Jis prideda elementą vektoriaus gale.
// Java kodas, rodantis loginį pridėjimo () metodą, importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1 ) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Prideda „yra“ sąrašo pabaigoje sąrašas v.add ('Fun') // Prideda 'Fun' sąrašo pabaigoje System.out.println ('Vektorius yra' + v)}}

Rezultatas

  • Negalima pridėti (int indeksas, E elementas) - Jis prideda nurodytą elementą prie nurodyto vektoriaus indekso
// Java kodas, rodantis void add () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (0 , 1) // Prideda 1 prie indekso 0 v. Add (1, „Java“) // Prideda „Java“ prie indekso 1 v.add (2, „yra“) // Prie indekso prideda „yra“ 2 v.add (3, „Fun“) // Prideda „Fun“ prie indekso 3 v.add (4, „!!!“) // Prideda „Fun“ prie indekso 4 System.out.println (' Vektorius yra „+ v)}}

Rezultatas

  • Loginis šalinimas (objektas o) - Jis pašalina elemento pašalinimą iš nurodyto vektoriaus indekso
// Java kodas, rodantis loginį šalinimo () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1 ) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Prideda „yra“ sąrašo pabaigoje sąrašas v.add ('Linksmas') // Sąrašo pabaigoje prideda 'Linksmas'. System.out.println ('Vektorius prieš pašalinimą' + v) v.remove (1) System.out.println ('Vektorius po pašalinimas '+ v)}}

Rezultatas

  • Būlo šalinti elementą ( Object obj) - Jis ištrina elementą pavadinimu obj (o ne indekso numeriu)
// „Java“ kodas, rodantis metodą „removeElement ()“ importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Sąrašo pabaigoje prideda „yra“ v.add („Fun“) // Sąrašo pabaigoje prideda „Fun“. System.out.println („Vektorius prieš pašalinimą“ + v) v.removeElement („Java“) System.out.println ('Vektorius pašalinus '+ v)}}

Rezultatas

  • Vidutinis dydis () - Tai grąžina vektoriaus dydį.
// Java kodas, rodantis size () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (0, 1) // Prideda 1 prie indekso 0 v. Add (1, „Java“) // Prideda „Java“ prie indekso 1 v.add (2, „yra“) // Prie indekso 2 prideda „yra“ v.add (3, „Fun“) // Įtraukia „Fun“ į indeksą 3 System.out.println („Vektoriaus dydis yra + v.size ()]}}

Rezultatas

  • Vidinis pajėgumas () - Tai grąžina vektoriaus talpą
// Java kodas, rodantis pajėgumo () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (0, 1) // Prideda 1 prie indekso 0 v. Add (1, „Java“) // Prideda „Java“ prie indekso 1 v.add (2, „yra“) // Prie indekso 2 prideda „yra“ v.add (3, „Fun“) // Įtraukia „Fun“ į indeksą 3 System.out.println („Vektoriaus talpa yra“ + v.capacity ())}}

Rezultatas

  • Objekto gavimas (int indeksas) - Jis grąžina elementą nurodytoje vektoriaus padėtyje
// Java kodas, rodantis get () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Sąrašo pabaigoje prideda „yra“ v.add ('Fun') // Prideda 'Fun' sąrašo pabaigoje System.out.println ('1 indekso elementas yra' + v.get (1))}}

Rezultatas

  • „Object firstElement“ () - Tai grąžina pirmąjį elementą
// Java kodas, rodantis firstElement () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Sąrašo pabaigoje prideda „yra“ v.add ('Fun') // Prideda 'Fun' sąrašo pabaigoje System.out.println ('Pirmasis elementas yra' + v.firstElement ())}}

Rezultatas

  • Object lastElement () - Jis grąžina paskutinį elementą
// Java kodas, rodantis lastElement () metodą importuoti java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (1) // Sąrašo pabaigoje prideda 1 v.add („Java“) // Sąrašo pabaigoje prideda „Java“ v.add („yra“) // Sąrašo pabaigoje prideda „yra“ v.add ('Fun') // Prideda 'Fun' sąrašo pabaigoje System.out.println ('Paskutinis elementas yra' + v.lastElement ())}}

Rezultatas

  • Būlio reikšmė lygi (objektas o) - Jis lygina vektorių su nurodytu objekto lygiateisiškumu. Ji grąžinama tiesa, jei visi elementai yra teisingi pagal atitinkamus indeksus
// Java kodas, rodantis loginį lygų () metodą, importuoja java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių Vektorius vcopy = new Vector () v.add (1) // sąrašo pabaigoje prideda 1 v.add ('Java') // Prideda „Java“ sąrašo pabaigoje v.add ('is') // Adds ' yra „sąrašo v.add pabaigoje („ Linksma “) // Sąrašo pabaigoje prideda„ Linksma “vcopy.add (0,1) // Prideda 1 prie indekso 0 vcopy.add (1, „Java“) // Prideda „Java“ prie 1 indekso vcopy.add (2, „is“) // Prideda „is“ prie 2 rodyklės vcopy.add (3, „Fun“) // Prideda „Fun“ 3 rodyklėje vcopy.add (4, '!!!') // Prideda 'Fun' prie 4 indekso if (v.equals (vcopy)) System.out.println ('Abu vektoriai yra lygūs') else Sistema .out.println ('Vektoriai nėra lygūs')}}

Rezultatas

  • Negalima apkarpyti () - Šis metodas pašalina papildomą talpą ir išlaiko pajėgumą tik elementams laikyti, t. Y. Lygus dydžiui
// Java kodas, rodantis trimToSize () metodą, importuoja java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Sukuria numatytąjį vektorių v.add (0, 1) // Prideda 1 prie indekso 0 v. Add (1, „Java“) // Prideda „Java“ prie indekso 1 v.add (2, „yra“) // Prie indekso 2 prideda „yra“ v.add (3, „Fun“) // 3 rodyklėje prideda „Fun“. System.out.println („Vektoriaus talpa yra + + v.capacity ()] v.trimToSize () System.out.println ( „Vektoriaus talpa yra“ + v. Talpa ())}}

Rezultatas


Kiti svarbūs metodai

Dabar jau turite turėti gerą idėją, kaip dirbti su vektoriais. Jei norite ištirti daugiau vektorinių metodų, pažvelkite į žemiau pateiktą lentelę.

Metodo pavadinimas Metodo funkcija

Boolean yra tuščias ()

patikrina, ar elementai egzistuoja, ar ne

Boolean yra (Object o)

naudojamas tikrinant konkretaus elemento egzistavimą, tarkim, o

int indexOf (objektas o)

Jis grąžina elemento o indeksą

void removeRange (int s, int e)

pašalina elementus iš vektoriaus pradedant s ir baigiant (e-1)

modelio vaizdo valdiklis java

niekinis aiškus ()

pašalina visus elementus

negaliojantis užtikrinti pajėgumą (int c)

Tai padidina talpą c

void setSize (int s)

Jis nustato dydį s. Jei s> dydis, papildoma talpa užpildoma nulinėmis reikšmėmis. Jei s

Objekto elementas At (int a)

grąžina indekso numeriu a esantį elementą

Objektų rinkinys (int a, Object o)

indekse a esantį elementą pakeičia nurodytu elementu o

Objektas [] toArray ()

pateikia masyvą, kuriame yra tie patys elementai kaip ir vektoriuje

Objekto klonas ()

Vektorinis objektas nukopijuojamas

Boolean addAll (c kolekcija)

prie vektoriaus prideda visus c kolekcijos elementus

Boolean addAll (int a, kolekcija c)

įterpia visus Kolekcijos elementus c į vektorių, esantį nurodytame rodyklėje a

Boolean retainAll (c rinkinys)

išlaiko visus vektoriaus elementus, kurie taip pat egzistuoja kolekcijoje c

Sąrašo antrinis sąrašas (int s, int e)

grąžina elementus kaip „List“ objektą, pradedant nuo s ir baigiant (e-1) iš vektoriaus.

Kai baigiasi kiekvienas geras dalykas, baigiasi ir mūsų tinklaraštis „Vektoriai“ . Tikimės, kad šiame tinklaraštyje galėjome aptarti visus „Java“ vektorių aspektus, o jūs galėjote surinkti šiek tiek žinių apie vektorius.

Įsitikinkite, kad praktikuojate kuo daugiau ir grąžinkite savo patirtį.

Patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. Mes esame čia, kad padėtume jums kiekviename jūsų kelionės žingsnyje, kad taptume be šių „Java“ interviu klausimų, mes parengėme programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais.

Turite mums klausimą? Prašau paminėti tai komentarų skyriuje „Vektoriai„ Java “ straipsnį ir mes kuo greičiau susisieksime su jumis.