Kas Java ir Vector un kā mēs to izmantojam?



Šis emuārs par tematu Vektori Java palīdzēs jums saprast, kā vektoru klase atšķiras no ArrayList, un palīdzēs uzzināt par dažādām iesaistītajām metodēm.

Pārnēsātāji ir viena no visbiežāk izmantotajām datu struktūrām programmēšanas pasaulē.Mēs visi to zinām Masīvi ir datu struktūras, kas datus glabā lineāri. Vektori datus glabā arī lineāri, taču atšķirībā no masīviem tiem nav noteikta izmēra. Tā vietā to lielumu var palielināt pēc pieprasījuma.

Vektoru klase ir bērnu klase AbstractList klase un īsteno Saraksts .Lai izmantotu vektorus, vispirms jāimportē Vector klase no paketes java.util:





importēt java.util.Vector

Šajā rakstā mēs apspriedīsim šādus vektoru jēdzienus:



Sāksim!

Priekšrocība s vektora Java

  • Īpašība ar dinamisku izmēru ir ļoti noderīga, jo tā ļauj iztērēt atmiņu, ja mēs nezinām atmiņas lielumu. datu struktūra deklarēšanas laikā.
  • Kad mēs vēlamies mainīt datu struktūras lielumu programmas vidū, vektori var izrādīties ļoti noderīgi.

Dinamiskā lieluma īpašība nav unikāla Java vektoriem. Vēl viena datu struktūra, kas pazīstama kā ArrayList, parāda arī dinamiskā lieluma īpašību. Tomēr vektori atšķiras no ArrayLists vairāku iemeslu dēļ:

  • Pirmkārt, vektori tiek sinhronizēti, kas tam dod priekšrocības salīdzinot ar programmas, jo pastāv datu korupcijas risks.
  • Otrkārt, vektoriem ir dažas mantotas funkcijas, kuras var ieviest tikai uz vektoriem, nevis uz ArrayLists.

Kā piekļūt elementiem vektorā

Mēs varam piekļūt datu dalībniekiem, vienkārši izmantojot elementa indeksu, tāpat kā mēs piekļūstam elementiem masīvos.



Piemērs- Ja mēs vēlamies piekļūt vektora v trešajam elementam, mēs to vienkārši saucam par v [3].

Vektori Konstruktori

Turpmāk uzskaitītas vairākas vektora variācijas konstruktori pieejams lietošanai:

  1. Vektors (int sākotnējā ietilpība, int pieaugums) - Konstruē vektoru ar norādīto sākuma kapacitāti un tā pieauguma lielumu.
  2. Vektors (int initialCapacity) - Konstruē tukšu vektoru ar norādīto sākuma kapacitāti. Šajā gadījumā pieaugums ir nulle.
  3. Vektors () - Konstruē noklusējuma vektoru ar ietilpību 10.
  4. Vektors (kolekcija c) - Konstruē vektoru ar noteiktu kolekciju, elementu secība ir tāda pati, kā atgriež kolekcijas iterators.

Vektoros ir arī trīs aizsargāti parametri

  1. Vidējā ietilpība: pieaugums () - Tas automātiski palielina vektora ietilpību, kad izmērs kļūst lielāks par ietilpību.
  2. Int elementsCount () - pateikt elementu skaitu vektorā
  3. Object [] elementData () - masīvs, kurā tiek saglabāti vektora elementi

Visbiežāk sastopamās kļūdas vektoru deklarēšanā

  • Vektors iemet NelegālsArgumentException ja definētā vektora InitialSize ir negatīvs.
  • Ja norādītā kolekcija nav derīga, tā met NullPointerException

Piezīme:

  1. Ja vektora pieaugums nav norādīts, tā būskatrā pieauguma ciklā dubultojās.
  2. Vektora ietilpība nevar būt mazāka par lielumu, tā var būt vienāda ar to.

Apskatīsim vektoru konstruktoru inicializācijas piemēru.

Piemērs: vektoru konstruktoru inicializēšana

/ Java kods, kas ilustrē vektoru konstruktorus, importē java.util. * Publiskā klase Main {public static void main (String [] args) {// izveido noklusējuma vektoru Vector v1 = new Vector () // izveido noteikta vektora vektoru v2 = jauns vektors (20) // izveido doto vektora lielumu un pieaugumu v3 = jauns vektors (30,10) v2.add (100) v2.add (100) v2.add (100) // izveido vektoru ar doto kolekcijas vektors v4 = jauns vektors (v2) System.out.println ('ietilpības vektors v1 + v1.kapacitāte ()] System.out.println (' ietilpības vektors v2 + ietilpība ()) System.out .println ('Jaudas vektors v3' + v3.kapacitāte ()) System.out.println ('Jaudas vektors v4 '+ v4.kapacitāte ())}

Rezultāts

iestatīt java klases ceļa logus 10

Konstruktori - vektori Java valodā - Edureka

Vektoru atmiņas sadalījums

Līdz šim jums noteikti jāsaprot, ka vektoriem nav noteikta izmēra, tā vietā viņiem ir iespēja dinamiski mainīt savu lielumu. Varētu domāt, ka vektori objektu glabāšanai piešķir nenoteiktu laiku. Bet tas tā nav. Vektori var mainīt savu lielumu, pamatojoties uz diviem laukiem “kapacitāte” un “kapacitātes pieaugums”. Sākotnēji lielums, kas vienāds ar lauka “kapacitāte”, tiek piešķirts, deklarējot vektoru. Mēs varam ievietot elementus, kas vienādi ar jaudu. Tiklīdz tiek ievietots nākamais elements, tas palielina masīva lielumu pēc izmēra ‘capacityIncrement’. Tādējādi tas spēj dinamiski mainīt savu izmēru.

Priekš noklusējuma konstruktors , jauda ir pilna, ja ir jāievieto jauns elements, jauda tiek dubultota.

Piemērs - Pieņemsim, ka mums ir InitialCapacity 5 un kapacitātes pieaugums no 2. Tātad vektora sākotnējais izmērs ir 5 elementi. Mēs šajā vektorā pa vienam ievietojam 5 elementus, proti, 1,2,3,4,5. Mēģinot vektorā ievietot vēl vienu elementu, proti, 6, vektora lielums tiks palielināts par 2. Tādējādi vektora lielums tagad ir 7. Tātad vektors viegli pielāgo savu izmēru saskaņā ar nr. no elementiem.

Vēl viens interesants moments ir tas, ka atšķirībā no masīviem vektoros nav reālu objektu, bet tikai atsauces uz objektiem. Tādējādi tas ļauj dažādu datu veidu objektus uzglabāt vienā vektorā.

Metodes vektorā

Apskatīsim dažas ļoti bieži izmantotās vektoru metodes.

  • Būla pievienošana (objekts o) - Tas pievieno elementu vektora beigās.
// Java kods, kas parāda būla pievienošanas () metodi, importē java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1 ) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Pievieno 'is' saraksta beigās saraksts v.add ('Jautrība') // Saraksta beigās pievieno 'Jautrība' System.out.println ('Vektors ir' + v)}}

Rezultāts

  • Void pievienot (int indekss, E elements) - Tas pievieno doto elementu vektorā norādītajā indeksā
// Java kods, kas parāda metodi void add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (0 , 1) // Pievieno 1 indeksā 0 v.add (1, 'Java') // Pievieno 'Java' indeksā 1 v.add (2, 'is') // Indeksā pievieno 'is' 2 v.add (3, 'Fun') // Pievieno 'Fun' indeksā 3 v.add (4, '!!!') // Pievieno 'Fun' indeksā 4 System.out.println (' Vektors ir '+ v)}}

Rezultāts

  • Būla noņemšana (objekts o) - Tas noņem noņemt elementu vektorā dotajā indeksā
// Java kods, kas parāda metodi Būla noņemt () importēt java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1 ) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Pievieno 'is' saraksta beigās saraksts v.add ('Fun') // Saraksta beigās pievieno 'Fun'. System.out.println ('Vector pirms noņemšanas' + v) v.remove (1) System.out.println ('Vector after noņemšana '+ v)}}

Rezultāts

  • Būla noņemt elementu ( Object obj) - Tas izdzēš elementu ar nosaukumu obj (nevis pēc indeksa numura)
// Java kods, kas parāda metodi removeElement () importē java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Saraksta beigās pievieno 'is' v.add ('Fun') // Saraksta beigās pievieno 'Fun'. System.out.println ('Vector pirms noņemšanas' + v) v.removeElement ('Java') System.out.println ('Vector pēc noņemšanas '+ v)}}

Rezultāts

  • Int lielums () - Tas atgriež vektora lielumu.
// Java kods, kas parāda metodi size () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (0, 1) // Pievieno 1 indeksā 0 v.add (1, 'Java') // Pievieno 'Java' indeksā 1 v.add (2, 'ir') // Pievieno 'ir' indeksā 2 v.add (3, 'Fun') // Pievieno 'Fun' indeksā 3 System.out.println ('Vektora lielums ir' + v.size ())}}

Rezultāts

  • Iekšējā ietilpība () - Tas atgriež vektora ietilpību
// Java kods, kas parāda kapacitātes () metodi, importē java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (0, 1) // Pievieno 1 indeksā 0 v.add (1, 'Java') // Pievieno 'Java' indeksā 1 v.add (2, 'ir') // Pievieno 'ir' indeksā 2 v.add (3, 'Fun') // Pievieno 'Fun' indeksā 3 System.out.println ('Vektora kapacitāte ir' + v.capacity ())}}

Rezultāts

  • Objekta iegūšana (int indekss) - Tas atgriež elementu dotajā vektora pozīcijā
// Java kods, kas parāda metodi get () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Saraksta beigās pievieno 'is' v.add ('Fun') // Pievieno 'Fun' saraksta beigās System.out.println ('1. indeksa elements ir' + v.get (1))}}

Rezultāts

  • Object firstElement () - Tas atgriež pirmo elementu
// Java kods, kas parāda metodi firstElement () importēt java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Saraksta beigās pievieno 'is' v.add ('Fun') // Pievieno 'Fun' saraksta beigās System.out.println ('Pirmais elements ir' + v.firstElement ())}}

Rezultāts

  • Object lastElement () - Tas atgriež pēdējo elementu
// Java kods, kas parāda metodi lastElement () importēt java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (1) // Pievieno 1 saraksta v.add ('Java') beigās // Pievieno 'Java' saraksta v.add beigās ('is') // Saraksta beigās pievieno 'is' v.add ('Fun') // Pievieno 'Fun' saraksta beigās System.out.println ('Pēdējais elements ir' + v.lastElement ())}}

Rezultāts

  • Būla vērtība ir vienāda (objekts o) - Tas salīdzina vektoru ar norādīto objektu vienādībai. Tas atgriež patiesu, ja visi elementi atbilst patiesajiem indeksiem
// Java kods, kas parāda metodi Būla vienāds ar () importē java.util. * Publiskā klase Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru Vector vcopy = new Vector () v.add (1) // saraksta beigās pievieno 1. v.add ('Java') // saraksta v.add beigās ('is') // pievieno 'Java'. ir 'saraksta v.add beigās (' Jautrība ') // Pievieno' Jautri 'saraksta vcopy.add (0,1) beigās // Pievieno 1 indeksā 0 vcopy.add (1, 'Java') // Pievieno 'Java' indeksā 1 vcopy.add (2, 'is') // Pievieno 'ir' indeksā 2 vcopy.add (3, 'Fun') // Pievieno 'Fun' indeksā 3 vcopy.add (4, '!!!') // Pievieno 'Fun' indeksā 4 if (v.equals (vcopy)) System.out.println ('Abi vektori ir vienādi') else Sistēma .out.println ('Vektori nav vienādi')}}

Rezultāts

  • Atcelt trimozēšanu () - Šī metode noņem papildu jaudu un saglabā jaudu tikai elementu noturēšanai, t.i., vienādai ar izmēru
// Java kods, kas parāda metodi trimToSize (), importē java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Tas izveido noklusējuma vektoru v.add (0, 1) // Pievieno 1 indeksā 0 v.add (1, 'Java') // Pievieno 'Java' indeksā 1 v.add (2, 'ir') // Pievieno 'ir' indeksā 2 v.add (3, 'Fun') // Pievieno 'Fun' indeksā 3 System.out.println ('Vektora ietilpība ir' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektora ietilpība ir' + v. Ietilpība ())}}

Rezultāts


Citas svarīgas metodes

Tagad jums noteikti ir laba ideja par to, kā strādāt ar vektoriem. Ja vēlaties izpētīt vairāk vektoru metožu, apskatiet tālāk sniegto tabulu.

Metodes nosaukums Metodes funkcija

Būla vērtība ir tukša ()

deklarējot objektu masīvu Java

pārbauda, ​​vai elementi pastāv vai nav

Būla vērtība satur (Object o)

izmanto, lai pārbaudītu konkrēta elementa esamību, teiksim o

int indexOf (objekts o)

Tas atgriež elementa o indeksu

void removeRange (int s, int e)

noņem elementus no vektora, sākot no s un beidzot ar (e-1)

anulēt skaidru ()

noņem visus elementus

void nodrošinātu Kapacitāte (int c)

Tas palielina jaudu par c

void setSize (int s)

Tas nosaka izmēru s. Ja s> izmērs, papildu ietilpība tiek aizpildīta ar nulles vērtībām. Ja s

Objekta elementsAt (int a)

atgriež elementu, kas pastāv ar indeksa numuru a

Objektu kopa (int a, Object o)

aizstāj indeksā a esošo elementu ar doto elementu o

Objekts [] toArray ()

atgriež masīvu, kurā ir tādi paši elementi kā vektorā

Objekta klons ()

Vektora objekts tiek kopēts

kā pārveidot dubultā par int Java

Būla addAll (c kolekcija)

vektoram pievieno visus kolekcijas c elementus

Būla addAll (int a, kolekcija c)

ievieto visus kolekcijas elementus c vektoram pie norādītā indeksa a

Boolean retainAll (kolekcija c)

saglabā visus vektorā esošos elementus, kas eksistē arī kolekcijā c

Saraksta apakšsaraksts (int s, int e)

atgriež elementus kā objektu List, sākot no s un beidzot ar (e-1) no vektora.

Katrai labai lietai beidzoties, ir beidzies arī mūsu emuārs vietnē Vectors . Mēs ceram, ka šajā emuārā mēs varējām apskatīt visus Java vektoru aspektus, un jūs varējāt apkopot dažas zināšanas par vektoriem.

Pārliecinieties, ka pēc iespējas vairāk praktizējat, un atgriezieties savā pieredzē.

Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Mēs esam šeit, lai palīdzētu jums katrā solī jūsu ceļojumā, lai kļūtu par papildus šiem java intervijas jautājumiem, mēs piedāvājam mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji.

Vai mums ir jautājums? Lūdzu, pieminējiet to šīs sadaļas “Java vektori” komentāru sadaļā rakstu, un mēs pēc iespējas ātrāk sazināsimies ar jums.