Què és Vector a Java i com l’utilitzem?



Aquest bloc sobre 'Vectors in Java' us ajudarà a comprendre com la classe de vectors és diferent d'ArrayList i us ajudarà a conèixer els diferents mètodes implicats.

Vectors a són una de les estructures de dades més utilitzades al món de la programació.Ho sabem tots Matrius són estructures de dades que contenen les dades de manera lineal. Els vectors també emmagatzemen les dades de manera lineal, però, a diferència de les matrius, no tenen una mida fixa. En canvi, la seva mida es pot augmentar a demanda.

La classe vectorial és una classe infantil de AbstractList classe i eines a Llista .Per utilitzar Vectors, primer hem d'importar la classe Vector del paquet java.util:





import java.util.Vector

En aquest article, parlarem dels conceptes següents de vectors:



Comencem!

Avantatge s de Vector a Java

  • La propietat de tenir una mida dinàmica és molt útil, ja que evita el malbaratament de memòria en cas que no sabem la mida de la estructura de dades en el moment de la declaració.
  • Quan volem canviar la mida de la nostra estructura de dades enmig d’un programa, els vectors poden resultar molt útils.

La propietat de tenir una mida dinàmica no és exclusiva de Vectors a Java. Una altra estructura de dades, coneguda com ArrayList, també mostra la propietat de tenir una mida dinàmica. Tanmateix, els vectors són diferents de les ArrayLists per un parell de motius:

  • En primer lloc, els vectors estan sincronitzats, cosa que li proporciona un avantatge en comparació amb programes ja que hi ha riscos de corrupció de dades.
  • En segon lloc, els vectors tenen algunes funcions heretades que només es poden implementar en vectors i no en ArrayLists.

Com accedir a elements en vector

Podem accedir als membres de les dades simplement utilitzant l’índex de l’element, igual que accedim als elements de les matrius.



Exemple- Si volem accedir al tercer element en un vector v, simplement ens referim a ell com a v [3].

Constructors de vectors

A continuació s’enumeren les múltiples variacions del vector constructors disponible per utilitzar:

  1. Vector (int initialCapacity, int Increment) - Construeix un vector amb la capacitat inicial donada i el seu increment de mida.
  2. Vector (int initialCapacity) - Construeix un vector buit amb initialCapacity donada. En aquest cas, l’increment és zero.
  3. Vector() - Construeix un vector per defecte de capacitat 10.
  4. Vector (col·lecció c) - Construeix un vector amb una col·lecció determinada, l’ordre dels elements és el mateix que el que torna l’iterador de la col·lecció.

També hi ha tres paràmetres protegits en vectors

matriu ordenar c ++
  1. Capacitat Int. Increment () - Augmenta automàticament la capacitat del vector quan la mida és superior a la capacitat.
  2. Int elementCount () - indiqueu el nombre d'elements del vector
  3. Object [] elementData () - matriu en què s'emmagatzemen elements del vector

Errors més comuns a la declaració de vectors

  • Vector llança un IllegalArgumentException si la mida inicial del vector definit és negativa.
  • Si la col·lecció especificada és nul·la, es llença NullPointerException

Nota:

  1. Si no s’especifica l’increment del vector, la capacitat seràs'ha duplicat en cada cicle d'increment.
  2. La capacitat d'un vector no pot ser inferior a la mida, pot ser igual a la mateixa.

Vegem un exemple d’inicialització de constructors de vectors.

Exemple: inicialització de constructors vectorials

/ Codi Java que il·lustra els constructors Vector d'importació de java.util. * Public class Main {public static void main (String [] args) {// create vector predeterminat Vector v1 = new Vector () // crea un vector de mida determinada Vector v2 = new Vector (20) // crea un vector de mida i increment determinats Vector v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // crea un vector amb done col·lecció Vector v4 = new Vector (v2) System.out.println ('Vector v1 de capacitat' + v1.capacity ()) System.out.println ('Vector v2 de capacitat' + v2.capacity ()) System.out .println ('Vector v3 de capacitat' + v3.capacity ()) System.out.println ('Vector v4 de capacitat' + v4.capacity ())}

Sortida

Constructors - Vectors a Java - Edureka

Assignació de memòria de vectors

Fins ara, heu d’haver entès que els vectors no tenen una mida fixa, sinó que tenen la possibilitat de canviar la seva mida dinàmicament. Es podria pensar que els vectors assignen un espai llarg indefinit per emmagatzemar objectes. Però aquest no és el cas. Els vectors poden canviar la seva mida en funció de dos camps 'capacitat' i 'capacitat Increment'. Inicialment, s’assigna una mida igual al camp ‘capacitat’ quan es declara un vector. Podem inserir els elements iguals a la capacitat. Però tan bon punt s’insereix l’element següent, augmenta la mida de la matriu per mida ‘capacityIncrement’. Per tant, és capaç de canviar la seva mida dinàmicament.

Per a un constructor per defecte , la capacitat es duplica sempre que la capacitat és plena i s'ha d'inserir un element nou.

Exemple - Suposem que tenim un vector de Capacitat inicial 5 i capacityIncrement de 2. Així, la mida inicial del vector és de 5 elements Inserim 5 elements en aquest vector un per un, és a dir, 1,2,3,4,5. Quan intentem inserir un altre element al vector, és a dir, 6, la mida del vector s'incrementarà en 2. Per tant, la mida del vector ara és 7. Així, el vector ajusta fàcilment la seva mida segons el no. d’elements.

Un altre punt interessant és que, a diferència de les matrius, els vectors no contenen objectes reals, sinó només referències als objectes. Per tant, permet emmagatzemar objectes de diferents tipus de dades en el mateix vector.

Mètodes en Vector

Vegem alguns mètodes vectorials que s’utilitzen amb molta freqüència.

  • Afegeix booleà (objecte o) - Afegeix un element al final del vector.
// Codi Java que mostra el mètode booleà add () per importar el mètode java.util. * Classe pública Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector per defecte v.add (1 ) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final del llista v.add ('Diversió') // Afegeix 'Diversió' al final de la llista System.out.println ('El vector és' + v)}}

Sortida

  • Afegeix el buit (Índex int, element E) - Afegeix l'element donat a l'índex especificat al vector
// Codi Java que mostra el mètode void add () d'importació del mètode java.util. * Public class Principal {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat v.add (0 , 1) // Afegeix 1 a l'índex 0 v.add (1, 'Java') // Afegeix 'Java' a l'índex 1 v.add (2, 'és') // Afegeix 'és' a l'índex 2 v.add (3, 'Fun') // Afegeix 'Fun' a l'índex 3 v.add (4, '!!!') // Afegeix 'Fun' a l'índex 4 System.out.println (' El vector és '+ v)}}

Sortida

  • Suprimeix booleà (objecte o) - Elimina eliminar l'element de l'índex donat al vector
// Codi Java que mostra el mètode booleà remove () importació del mètode java.util. * Classe pública Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector per defecte v.add (1 ) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final del llista v.add ('Diversió') // Afegeix 'Diversió' al final de la llista System.out.println ('Vector abans de l'eliminació' + v) v.remove (1) System.out.println ('Vector després eliminació '+ v)}}

Sortida

  • RemoveElement booleà ( Object object) - Elimina l'element pel seu nom obj (no pel número d'índex)
// Codi Java que mostra el mètode removeElement () d'importació java.util. * Classe pública Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat v.add (1) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final de la llista v.add ('Fun') // Afegeix 'Fun' al final de la llista System.out.println ('Vector abans de l'eliminació' + v) v.removeElement ('Java') System.out.println ('Vector després de l'eliminació '+ v)}}

Sortida

  • Mida int () - Retorna la mida del vector.
// Codi Java que mostra mida () mètode importació java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector per defecte v.add (0, 1) // Afegeix 1 a l'índex 0 v.add (1, 'Java') // Afegeix 'Java' a l'índex 1 v.add (2, 'és') // Afegeix 'és' a l'índex 2 v.add (3, 'Diversió') // Afegeix 'Diversió' a l'índex 3 System.out.println ('La mida del vector és' + v.size ())}}

Sortida

  • Capacitat Int () - Retorna la capacitat del vector
// Codi Java que mostra capacitat () mètode importació java.util. * Public class Principal {public static void main (String [] args) {Vector v = new Vector () // Crea un vector per defecte v.add (0, 1) // Afegeix 1 a l'índex 0 v.add (1, 'Java') // Afegeix 'Java' a l'índex 1 v.add (2, 'és') // Afegeix 'és' a l'índex 2 v.add (3, 'Fun') // Afegeix 'Fun' a l'índex 3 System.out.println ('La capacitat del vector és' + v.capacity ())}}

Sortida

  • Obtenció d'objectes (índex int) - Retorna l'element a la posició donada al vector
// Codi Java que mostra el mètode get () importació java.util. * Public class Principal {public static void main (String [] args) {Vector v = new Vector () // Crea un vector per defecte v.add (1) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final de la llista v.add ('Diversió') // Afegeix 'Diversió' al final de la llista System.out.println ('L'element de l'índex 1 és' + v.get (1))}}

Sortida

  • Objecte firstElement () - Retorna el primer element
// Codi Java que mostra el mètode firstElement () importació java.util. * Classe pública Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat v.add (1) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final de la llista v.add ('Fun') // Afegeix 'Fun' al final de la llista System.out.println ('El primer element és' + v.firstElement ())}}

Sortida

  • Objecte lastElement () - Retorna l'últim element
// Codi Java que mostra lastElement () mètode importació java.util. * Classe pública Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat v.add (1) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix 'és' al final de la llista v.add ('Diversió') // Afegeix 'Diversió' al final de la llista System.out.println ('L'últim element és' + v.lastElement ())}}

Sortida

  • Booleà és igual (objecte o) - Compara el vector amb l'objecte especificat per obtenir la igualtat. Torna cert si tots els elements són certs en els seus índexs corresponents
// Codi Java que mostra el mètode boolean equals () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat Vector vcopy = new Vector () v.add (1) // Afegeix 1 al final de la llista v.add ('Java') // Afegeix 'Java' al final de la llista v.add ('és') // Afegeix ' és 'al final de la llista v.add (' Diversió ') // Afegeix' Diversió 'al final de la llista vcopy.add (0,1) // Afegeix 1 a l'índex 0 vcopy.add (1, 'Java') // Afegeix 'Java' a l'índex 1 vcopy.add (2, 'és') // Afegeix 'és' a l'índex 2 vcopy.add (3, 'Diversió') // Afegeix 'Diversió' a l'índex 3 vcopy.add (4, '!!!') // Afegeix 'Diversió' a l'índex 4 si (v.equals (vcopy)) System.out.println ('Tots dos vectors són iguals') més Sistema .out.println ('Els vectors no són iguals')}}

Sortida

  • Void trimtosize () - Aquest mètode elimina la capacitat addicional i manté la capacitat només per contenir els elements, és a dir, igual a la mida
// Codi Java que mostra trimToSize () mètode d'importació java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vector predeterminat v.add (0, 1) // Afegeix 1 a l'índex 0 v.add (1, 'Java') // Afegeix 'Java' a l'índex 1 v.add (2, 'és') // Afegeix 'és' a l'índex 2 v.add (3, 'Diversió') // Afegeix 'Diversió' a l'índex 3 System.out.println ('La capacitat vectorial és' + v.capacity ()) v.trimToSize () System.out.println ( 'La capacitat del vector és' + v.capacity ())}}

Sortida


Altres mètodes importants

A hores d’ara ja haureu tingut una bona idea de com treballar amb vectors. Si voleu explorar més mètodes vectorials, consulteu la taula que es mostra a continuació.

Nom del mètode Funció del mètode

Booleà isEmpty ()

comprova si els elements existeixen o no

Booleà conté (objecte o)

s’utilitza per comprovar l’existència d’un element específic, per exemple, o

int indexOf (objecte o)

Retorna l'índex de l'element o

void removeRange (int s, int e)

elimina elements del vector començant per s i acabant amb (e-1)

void clear ()

elimina tots els elements

nul garanteix la capacitat (int c)

Augmenta la capacitat en c

void setSize (int s)

Estableix la mida a s. Si la mida s>, la capacitat addicional s'omple de valors nuls. Si l’art

Element objectAt (int a)

retorna l'element existent al número d'índex a

Conjunt d'objectes (int a, objecte o)

substitueix l'element present a l'índex a per l'element o donat

Objecte [] toArray ()

retorna una matriu que conté els mateixos elements que el vector

Clon d'objectes ()

Es copia l’objecte vectorial

AddAll booleà (col·lecció c)

afegeix tots els elements de la col·lecció c al vector

AddAll booleà (int a, Col·lecció c)

insereix tots els elements de la col·lecció c al vector de l’índex especificat a

Boolean retainAll (Col·lecció c)

conserva tots els elements del vector que també existeixen a la col·lecció c

Llista de subllistes (int s, int e)

retorna els elements, com a objecte de llista, començant per s i acabant amb (e-1) del vector.

Com que tot allò bo arriba a la seva fi, també ho és el nostre bloc sobre Vectors in . Esperem que poguem cobrir tots els aspectes dels vectors Java en aquest bloc i que hàgiu pogut reunir alguns coneixements sobre els vectors.

Assegureu-vos de practicar el màxim possible i de recuperar la vostra experiència.

Consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. Estem aquí per ajudar-vos en tots els passos del vostre viatge; per convertir-vos en una pregunta a part d’aquestes entrevistes java, oferim un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest ‘Vectors in Java’ article i ens posarem en contacte amb vostè el més aviat possible.