Ce este Vector în Java și cum îl folosim?



Acest blog despre „Vectori în Java” vă va ajuta să înțelegeți în ce fel clasa vectorilor este diferită de ArrayList și vă va ajuta să aflați despre diferite metode implicate.

Vectori în sunt una dintre cele mai frecvent utilizate structuri de date din lumea programării.Toti stim asta Matrice sunt structuri de date care dețin datele într-un mod liniar. Vectorii stochează, de asemenea, datele într-un mod liniar, dar, spre deosebire de matrici, nu au o dimensiune fixă. În schimb, dimensiunea acestora poate fi mărită la cerere.

Clasa vector este o clasă de copii AbstractList clasa și instrumentele pe Listă .Pentru a utiliza vectori, trebuie mai întâi să importăm clasa Vector din pachetul java.util:





importați java.util.Vector

În acest articol, vom discuta următoarele concepte de vectori:



Să începem!

Avantaj s de Vector în Java

  • Proprietatea de a avea o dimensiune dinamică este foarte utilă, deoarece evită pierderea de memorie în cazul în care nu cunoaștem dimensiunea structură de date în momentul declarării.
  • Când vrem să schimbăm dimensiunea structurii noastre de date în mijlocul unui program, vectorii se pot dovedi foarte utili.

Proprietatea de a avea o dimensiune dinamică nu este unică pentru Vectors în Java. O altă structură de date, cunoscută sub numele de ArrayList, arată și proprietatea de a avea o dimensiune dinamică. Cu toate acestea, vectorii sunt diferiți de ArrayLists din câteva motive:

  • În primul rând, vectorii sunt sincronizați, ceea ce îi conferă un avantaj față de în comparație cu pentru că există riscuri de corupție a datelor.
  • În al doilea rând, vectorii au unele funcții vechi care pot fi implementate numai pe vectori și nu pe ArrayLists.

Cum se accesează elementele în Vector

Putem accesa membrii datelor pur și simplu folosind indexul elementului, la fel cum accesăm elementele din matrice.



Exemplu- Dacă dorim să accesăm al treilea element dintr-un vector v, ne referim pur și simplu la acesta ca v [3].

Constructori de vectori

Mai jos sunt enumerate multiplele variații ale vectorului constructori disponibil pentru utilizare:

  1. Vector (int initialCapacity, int Increment) - Construiește un vector cu capacitatea inițială dată și mărirea sa în mărime.
  2. Vector (int initialCapacity) - Construiește un vector gol cu ​​capacitatea inițială dată. În acest caz, Increment este zero.
  3. Vector() - Construiește un vector implicit de capacitate 10.
  4. Vector (colecția c) - Construiește un vector cu o colecție dată, ordinea elementelor este aceeași cu cea returnată de iteratorul colecției.

Există, de asemenea, trei parametri protejați în vectori

are o relație în java
  1. Capacitate Int. Increment () - Crește automat capacitatea vectorului atunci când dimensiunea devine mai mare decât capacitatea.
  2. Int elementCount () - spuneți numărul de elemente din vector
  3. Object [] elementData () - matrice în care sunt stocate elemente de vector

Cele mai frecvente erori în declarația de vectori

  • Vectorul aruncă un IllegalArgumentException dacă Dimensiunea inițială a vectorului definit este negativă.
  • Dacă colecția specificată este nulă, aruncă NullPointerException

Notă:

  1. Dacă incrementarea vectorială nu este specificată, atunci capacitatea acesteia va fidublat în fiecare ciclu de incrementare.
  2. Capacitatea unui vector nu poate fi mai mică decât dimensiunea, poate fi egală cu aceasta.

Să luăm în considerare un exemplu de inițializare a constructorilor de vectori.

Exemplu: inițializarea constructorilor vectoriali

/ Cod Java care ilustrează Vector Constructors import java.util. * Public class Main {public static void main (String [] args) {// create vector implicit Vector v1 = new Vector () // creează un vector de dimensiune dată Vector v2 = vector nou (20) // creați un vector cu dimensiune și creștere date Vector v3 = nou Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // creați un vector cu date colecție Vector v4 = nou Vector (v2) System.out.println ('Vector v1 de capacitate' + v1.capacity ()) System.out.println ('Vector v2 de capacitate' + v2.capacity ()) System.out .println ('Vector v3 de capacitate' + v3.capacity ()) System.out.println ('Vector v4 de capacitate' + v4.capacity ())}

Ieșire

Constructori - Vectori în Java - Edureka

Alocarea memoriei vectorilor

Până acum, trebuie să fi înțeles că vectorii nu au o dimensiune fixă, ci au capacitatea de a-și schimba dimensiunea dinamic. S-ar putea crede că vectorii alocă spațiu lung nedefinit pentru stocarea obiectelor. Dar nu este cazul. Vectorii își pot schimba dimensiunea pe baza a două câmpuri „capacité” și „capacityIncrement”. Inițial, o mărime egală cu câmpul „capacitate” este alocată atunci când este declarat un vector. Putem insera elementele egale cu capacitatea. Dar de îndată ce elementul următor este introdus, acesta mărește dimensiunea matricei cu dimensiunea „capacityIncrement”. Prin urmare, este capabil să-și schimbe dimensiunea dinamic.

Pentru o constructor implicit , capacitatea este dublată ori de câte ori capacitatea este plină și urmează să fie introdus un element nou.

Exemplu - Să presupunem că avem un vector de InitialCapacity 5 și capacityIncrement din 2. Deci dimensiunea inițială a vectorului este de 5 elemente Introducem 5 elemente în acest vector unul câte unul, și anume 1,2,3,4,5. Când încercăm să inserăm un alt element în vector și anume 6, dimensiunea vectorului va fi mărită cu 2. Prin urmare, dimensiunea vectorului este acum 7. Deci, vectorul își ajustează cu ușurință dimensiunea în funcție de nr. de elemente.

Un alt punct interesant este că, spre deosebire de matrice, vectorii nu conțin obiecte reale, ci doar referințe la obiecte. Prin urmare, permite obiectelor de diferite tipuri de date să fie stocate în același vector.

Metode în Vector

Să aruncăm o privire asupra câtorva metode vectoriale utilizate foarte frecvent.

  • Adăugare booleană (Obiectul o) - Se adaugă un element la sfârșitul vectorului.
// Cod Java care afișează metoda booleană add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1 ) // Adaugă 1 la sfârșitul listei v.add („Java”) // Adaugă „Java” la sfârșitul listei v.add („este”) // Adaugă „este„ la sfârșitul listei list v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Vectorul este' + v)}}

Ieșire

  • Adăugare nulă (index index, element E) - Se adaugă elementul dat la indexul specificat în vector
// Cod Java care arată void add () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (0 , 1) // Adaugă 1 la index 0 v.add (1, 'Java') // Adaugă 'Java' la index 1 v.add (2, 'este') // Adaugă 'este' la index 2 v.add (3, 'Fun') // Adaugă 'Fun' la index 3 v.add (4, '!!!') // Adaugă 'Fun' la index 4 System.out.println (' Vectorul este '+ v)}}

Ieșire

  • Eliminare booleană (obiect o) - Elimină eliminarea elementului de la indexul dat din vector
// Cod Java care arată boolean remove () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1 ) // Adaugă 1 la sfârșitul listei v.add („Java”) // Adaugă „Java” la sfârșitul listei v.add („este”) // Adaugă „este„ la sfârșitul listei list v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Vector înainte de eliminare' + v) v.remove (1) System.out.println ('Vector după eliminare '+ v)}}

Ieșire

  • RemoveElement boolean ( Obiect obiect) - Șterge elementul prin numele său obj (nu după numărul de index)
// Cod Java care arată metoda removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1) // Adaugă 1 la sfârșitul listei v.add ('Java') // Adaugă 'Java' la sfârșitul listei v.add ('este') // Adaugă 'este' la sfârșitul listei v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Vector înainte de eliminare' + v) v.removeElement ('Java') System.out.println ('Vector după eliminare '+ v)}}

Ieșire

  • Dimensiune Int () - Returnează dimensiunea vectorului.
// Cod Java care arată size () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Se creează un vector implicit v.add (0, 1) // Adaugă 1 la index 0 v.add (1, 'Java') // Adaugă 'Java' la index 1 v.add (2, 'este') // Adaugă 'este' la index 2 v.add (3, 'Fun') // Adaugă 'Fun' la indexul 3 System.out.println ('Dimensiunea vectorului este' + v.size ())}}

Ieșire

  • Capacitate Int () - Returnează capacitatea vectorului
// Cod Java care arată capacitatea () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (0, 1) // Adaugă 1 la index 0 v.add (1, 'Java') // Adaugă 'Java' la index 1 v.add (2, 'este') // Adaugă 'este' la index 2 v.add (3, 'Fun') // Adaugă 'Fun' la indexul 3 System.out.println ('Capacitatea vectorială este' + v.capacity ())}}

Ieșire

  • Obținerea obiectului (index int) - Returnează elementul în poziția dată în vector
// Cod Java care arată get () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1) // Adaugă 1 la sfârșitul listei v.add ('Java') // Adaugă 'Java' la sfârșitul listei v.add ('este') // Adaugă 'este' la sfârșitul listei v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Elementul din indexul 1 este' + v.get (1))}}

Ieșire

  • Obiect firstElement () - Returnează primul element
// Cod Java care arată firstElement () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1) // Adaugă 1 la sfârșitul listei v.add ('Java') // Adaugă 'Java' la sfârșitul listei v.add ('este') // Adaugă 'este' la sfârșitul listei v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Primul element este' + v.firstElement ())}}

Ieșire

  • Obiect lastElement () - Returnează ultimul element
// Cod Java care arată metoda lastElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (1) // Adaugă 1 la sfârșitul listei v.add ('Java') // Adaugă 'Java' la sfârșitul listei v.add ('este') // Adaugă 'este' la sfârșitul listei v.add ('Fun') // Adaugă 'Fun' la sfârșitul listei System.out.println ('Ultimul element este' + v.lastElement ())}}

Ieșire

  • Boolean este egal (Obiectul o) - Se compară vectorul cu obiectul specificat pentru egalitate. Revine adevărat dacă toate elementele sunt adevărate la indicii lor corespunzători
// Cod Java care arată metoda booleană egală cu () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Se creează un vector implicit Vector vcopy = new Vector () v.add (1) // Adaugă 1 la sfârșitul listei v.add („Java”) // Adaugă „Java” la sfârșitul listei v.add („este”) // Adaugă „ este „la sfârșitul listei v.add („ Distracție ”) // Adaugă„ Distracție ”la sfârșitul listei vcopy.add (0,1) // Adaugă 1 la index 0 vcopy.add (1, „Java”) // Adaugă „Java” la indexul 1 vcopy.add (2, „este”) // Adaugă „este„ la indexul 2 vcopy.add (3, „Distracție”) // Adaugă „Distracție” la indexul 3 vcopy.add (4, '!!!') // Adaugă 'Fun' la indexul 4 dacă (v.equals (vcopy)) System.out.println ('Ambii vectori sunt egali') altfel Sistem .out.println („Vectorii nu sunt egali”)}}

Ieșire

  • Vid trimtosize () - Această metodă elimină capacitatea suplimentară și menține capacitatea doar de a ține elementele, adică egală cu dimensiunea
// Cod Java care arată trimToSize () metoda import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Creează un vector implicit v.add (0, 1) // Adaugă 1 la index 0 v.add (1, 'Java') // Adaugă 'Java' la index 1 v.add (2, 'este') // Adaugă 'este' la index 2 v.add (3, 'Fun') // Adaugă 'Fun' la index 3 System.out.println ('Capacitatea vectorială este' + v.capacity ()) v.trimToSize () System.out.println ( „Capacitatea vectorială este” + v.capacity ())}}

Ieșire


Alte metode importante

Până acum trebuie să aveți o idee bună despre cum să lucrați cu vectori. Dacă doriți să explorați mai multe metode vectoriale, consultați tabelul de mai jos.

Denumirea metodei Funcția metodei

Boolean isEmpty ()

verifică dacă există sau nu elemente

Boolean conține (Obiectul o)

folosit pentru a verifica existența unui element specific, să zicem o

int indexOf (Obiectul o)

Returnează indexul elementului o

void removeRange (int s, int e)

elimină elemente din vector începând de la s și terminând cu (e-1)

gol clar ()

elimină toate elementele

nul asigură capacitate (int c)

Crește capacitatea cu c

void setSize (int s)

Setează dimensiunea la s. Dacă dimensiunea s>, capacitatea suplimentară este umplută cu valori nule. Dacă s

Element elementAt (int a)

returnează elementul existent la numărul de index a

Set de obiecte (int a, Object o)

înlocuiește elementul prezent la indexul a cu elementul dat o

Obiect [] toArray ()

returnează o matrice care conține aceleași elemente ca vectorul

Clonare obiect ()

Obiectul vector este copiat

Boolean addAll (Colecția c)

adaugă toate elementele din Colecția c la vector

Boolean addAll (int a, Colecția c)

introduce toate elementele Colecției c la vectorul la indexul specificat a

Boolean retainAll (Colecția c)

reține toate elementele din vector care există și în Colecția c

Listă subListă (int s, int e)

returnează elementele, ca obiect List, începând de la s și terminând cu (e-1) din vector.

Pe măsură ce fiecare lucru bun se sfârșește, la fel și blogul nostru despre Vectors in . Sperăm că am putut acoperi toate aspectele vectorilor java din acest blog și ați reușit să adunați câteva cunoștințe cu privire la vectori.

Asigurați-vă că exersați cât mai mult posibil și reveniți la experiență.

Verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs., pentru a deveni o afară de aceste întrebări java interviu, venim cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui „Vectori în Java” articol și vă vom răspunde cât mai curând posibil.