Cos'è Vector in Java e come lo usiamo?



Questo blog sui 'Vettori in Java' ti aiuterà a capire in che modo la classe vettoriale è diversa da ArrayList e ti aiuterà a conoscere i diversi metodi coinvolti.

Vettori in sono una delle strutture dati più comunemente utilizzate nel mondo della programmazione.Lo sappiamo tutti Array sono strutture di dati che contengono i dati in modo lineare. Anche i vettori memorizzano i dati in modo lineare, ma a differenza degli array, non hanno una dimensione fissa. Invece, la loro dimensione può essere aumentata su richiesta.

La classe Vector è una classe figlio di AbstractList classe e implementa Elenco .Per usare i vettori, dobbiamo prima importare la classe Vector dal pacchetto java.util:





importare java.util.Vector

In questo articolo, discuteremo i seguenti concetti di vettori:



Iniziamo!

Vantaggio s di Vector in Java

  • La proprietà di avere una dimensione dinamica è molto utile in quanto evita lo spreco di memoria nel caso in cui non conosciamo la dimensione del struttura dati al momento della dichiarazione.
  • Quando vogliamo cambiare la dimensione della nostra struttura dati nel mezzo di un programma, i vettori possono rivelarsi molto utili.

La proprietà di avere una dimensione dinamica non è unica per i vettori in Java. Un'altra struttura dati, nota come ArrayList, mostra anche la proprietà di avere una dimensione dinamica. Tuttavia, i vettori sono diversi da ArrayLists per un paio di motivi:

  • Innanzitutto, i vettori sono sincronizzati, il che gli conferisce un vantaggio rispetto a paragonato a programmi in quanto vi sono rischi di danneggiamento dei dati.
  • In secondo luogo, i vettori hanno alcune funzioni legacy che possono essere implementate solo sui vettori e non sugli ArrayList.

Come accedere agli elementi in vettoriale

Possiamo accedere ai membri dei dati semplicemente usando l'indice dell'elemento, proprio come accediamo agli elementi in Arrays.



Esempio- Se vogliamo accedere al terzo elemento in un vettore v, lo chiamiamo semplicemente v [3].

Costruttori di vettori

Di seguito sono elencate le molteplici varianti di vettore costruttori disponibile per l'uso:

  1. Vector (int initialCapacity, int Increment) - Costruisce un vettore con una data capacità iniziale e il suo incremento di dimensione.
  2. Vector (int initialCapacity) - Costruisce un vettore vuoto con una data initialCapacity. In questo caso, l'incremento è zero.
  3. Vettore() - Costruisce un vettore predefinito di capacità 10.
  4. Vector (Collezione c) - Costruisce un vettore con una data raccolta, l'ordine degli elementi è lo stesso restituito dall'iteratore della raccolta.

Ci sono anche tre parametri protetti nei vettori

  1. Int capacità Incremento () - Aumenta automaticamente la capacità del vettore quando la dimensione diventa maggiore della capacità.
  2. Int elementCount () - indica il numero di elementi nel vettore
  3. Object [] elementData () - matrice in cui sono memorizzati gli elementi del vettore

Errori più comuni nella dichiarazione dei vettori

  • Vector genera un file IllegalArgumentException se InitialSize del vettore definito è negativo.
  • Se la raccolta specificata è null, viene generato NullPointerException

Nota:

  1. Se l'incremento del vettore non è specificato, la capacità saràraddoppiato in ogni ciclo di incremento.
  2. La capacità di un vettore non può essere inferiore alla dimensione, può essere uguale ad essa.

Consideriamo un esempio di inizializzazione dei costruttori di vettori.

Esempio: inizializzazione di costruttori vettoriali

/ Codice Java che illustra i costruttori vettoriali import java.util. * Public class Main {public static void main (String [] args) {// create default vector Vector v1 = new Vector () // create a vector of given Size Vector v2 = nuovo vettore (20) // crea un vettore di dimensione e vettore di incremento dati v3 = nuovo vettore (30,10) v2.add (100) v2.add (100) v2.add (100) // crea un vettore con dato raccolta Vector v4 = new Vector (v2) System.out.println ('Vector v1 di capacità' + v1.capacity ()) System.out.println ('Vector v2 di capacità' + v2.capacity ()) System.out .println ('Vector v3 di capacità' + v3.capacity ()) System.out.println ('Vector v4 di capacità' + v4.capacity ())}

Produzione

Costruttori - Vettori in Java - Edureka

Allocazione di memoria dei vettori

Finora, devi aver capito che i Vettori non hanno una dimensione fissa, invece, hanno la capacità di cambiare la loro dimensione dinamicamente. Si potrebbe pensare che i vettori assegnino uno spazio lungo indefinito per memorizzare gli oggetti. Ma non è così. I vettori possono modificare la loro dimensione in base a due campi 'capacità' e 'incremento capacità'. Inizialmente, una dimensione uguale al campo 'capacità' viene assegnata quando viene dichiarato un vettore. Possiamo inserire gli elementi pari alla capienza. Ma non appena viene inserito l'elemento successivo, aumenta la dimensione dell'array di 'capacityIncrement'. Quindi, è in grado di cambiare le sue dimensioni dinamicamente.

Per un costruttore predefinito , la capacità viene raddoppiata ogni volta che la capacità è piena e si deve inserire un nuovo elemento.

Esempio - Supponiamo di avere un vettore di InitialCapacity 5 e capacità Incremento di 2. Quindi la dimensione iniziale del vettore è di 5 elementi Inseriamo 5 elementi in questo vettore uno per uno, cioè 1,2,3,4,5. Quando proviamo a inserire un altro elemento nel vettore, cioè 6, la dimensione del vettore verrà incrementata di 2. Quindi la dimensione del vettore ora è 7. Quindi il vettore regola facilmente la sua dimensione in base al n. di elementi.

Un altro punto interessante è che, a differenza degli array, i vettori non contengono oggetti reali, ma solo riferimenti agli oggetti. Quindi, consente di memorizzare oggetti di diversi tipi di dati nello stesso vettore.

Metodi in vettoriale

Diamo uno sguardo ad alcuni metodi vettoriali usati molto di frequente.

  • Boolean add (Object o) - Aggiunge un elemento alla fine del vettore.
// Codice Java che mostra il metodo booleano add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1 ) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine del list v.add ('Fun') // Aggiunge 'Fun' alla fine dell'elenco System.out.println ('The vector is' + v)}}

Produzione

  • Void add (int Index, E element) - Aggiunge l'elemento dato all'indice specificato nel vettore
// Codice Java che mostra il metodo void add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (0 , 1) // Aggiunge 1 all'indice 0 v.add (1, 'Java') // Aggiunge 'Java' all'indice 1 v.add (2, 'is') // Aggiunge 'is' all'indice 2 v.add (3, 'Fun') // Aggiunge 'Fun' all'indice 3 v.add (4, '!!!') // Aggiunge 'Fun' all'indice 4 System.out.println (' Il vettore è '+ v)}}

Produzione

  • Booleano Rimuovi (oggetto o) - Rimuove la rimozione dell'elemento in corrispondenza dell'indice specificato nel vettore
// Codice Java che mostra il metodo booleano remove () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1 ) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine del list v.add ('Fun') // Aggiunge 'Fun' alla fine dell'elenco System.out.println ('Vector before removal' + v) v.remove (1) System.out.println ('Vector after rimozione '+ v)}}

Produzione

cos'è un token in java
  • Boolean removeElement ( Oggetto obj) - Elimina l'elemento con il suo nome obj (non con il numero di indice)
// Codice Java che mostra il metodo removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine dell'elenco v.add ('Fun') // Aggiunge 'Fun' alla fine dell'elenco System.out.println ('Vector before removal' + v) v.removeElement ('Java') System.out.println ('Vector dopo la rimozione '+ v)}}

Produzione

  • Dimensione int () - Restituisce la dimensione del vettore.
// Codice Java che mostra il metodo size () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (0, 1) // Aggiunge 1 all'indice 0 v.add (1, 'Java') // Aggiunge 'Java' all'indice 1 v.add (2, 'is') // Aggiunge 'is' all'indice 2 v.add (3, 'Fun') // Aggiunge 'Fun' all'indice 3 System.out.println ('The vector size is' + v.size ())}}

Produzione

  • Capacità int () - Restituisce la capacità del vettore
// Codice Java che mostra il metodo capacity () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (0, 1) // Aggiunge 1 all'indice 0 v.add (1, 'Java') // Aggiunge 'Java' all'indice 1 v.add (2, 'is') // Aggiunge 'is' all'indice 2 v.add (3, 'Fun') // Aggiunge 'Fun' all'indice 3 System.out.println ('The vector capacity is' + v.capacity ())}}

Produzione

  • Oggetto get (int index) - Restituisce l'elemento nella posizione data nel vettore
// Codice Java che mostra il metodo get () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine dell'elenco v.add ('Fun') // Aggiunge 'Fun' alla fine della lista System.out.println ('The element at index 1 is' + v.get (1))}}

Produzione

  • Oggetto firstElement () - Restituisce il primo elemento
// Codice Java che mostra il metodo firstElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine dell'elenco v.add ('Fun') // Aggiunge 'Fun' alla fine dell'elenco System.out.println ('Il primo elemento è' + v.firstElement ())}}

Produzione

  • Oggetto lastElement () - Restituisce l'ultimo elemento
// Codice Java che mostra il metodo lastElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (1) // Aggiunge 1 alla fine dell'elenco v.add ('Java') // Aggiunge 'Java' alla fine dell'elenco v.add ('is') // Aggiunge 'is' alla fine dell'elenco v.add ('Fun') // Aggiunge 'Fun' alla fine dell'elenco System.out.println ('The last element is' + v.lastElement ())}}

Produzione

  • Booleano è uguale a (Oggetto o) - Confronta il vettore con l'oggetto specificato per l'uguaglianza. Restituisce vero se tutti gli elementi sono veri nei loro indici corrispondenti
// Codice Java che mostra il metodo booleano equals () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito Vector vcopy = new Vector () v.add (1) // Aggiunge 1 alla fine della lista v.add ('Java') // Aggiunge 'Java' alla fine della lista v.add ('is') // Aggiunge ' è 'alla fine della lista v.add (' Fun ') // Aggiunge' Fun 'alla fine della lista vcopy.add (0,1) // Aggiunge 1 all'indice 0 vcopy.add (1, 'Java') // Aggiunge 'Java' all'indice 1 vcopy.add (2, 'is') // Aggiunge 'is' all'indice 2 vcopy.add (3, 'Fun') // Aggiunge 'Fun' all'indice 3 vcopy.add (4, '!!!') // Aggiunge 'Fun' all'indice 4 if (v.equals (vcopy)) System.out.println ('Entrambi i vettori sono uguali') else System .out.println ('I vettori non sono uguali')}}

Produzione

  • Void trimtosize () - Questo metodo rimuove la capacità extra e mantiene la capacità solo per contenere gli elementi, cioè uguale alla dimensione
// Codice Java che mostra il metodo trimToSize () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Crea un vettore predefinito v.add (0, 1) // Aggiunge 1 all'indice 0 v.add (1, 'Java') // Aggiunge 'Java' all'indice 1 v.add (2, 'is') // Aggiunge 'is' all'indice 2 v.add (3, 'Fun') // Aggiunge 'Fun' all'indice 3 System.out.println ('La capacità del vettore è' + v.capacity ()) v.trimToSize () System.out.println ( 'La capacità del vettore è' + v.capacity ())}}

Produzione


Altri metodi importanti

A questo punto devi avere una buona idea su come lavorare con i vettori. Se desideri esplorare più metodi vettoriali, dai un'occhiata alla tabella riportata di seguito.

Nome del metodo Funzione del metodo

Boolean isEmpty ()

controlla se gli elementi esistono o meno

Boolean contiene (Object o)

utilizzato per verificare l'esistenza di un elemento specifico, ad esempio o

int indexOf (Oggetto o)

Restituisce l'indice dell'elemento o

void removeRange (int s, int e)

rimuove elementi dal vettore che iniziano da se finiscono con (e-1)

void clear ()

rimuove tutti gli elementi

void sureCapacity (int c)

Aumenta la capacità di c

void setSize (int s)

Imposta la dimensione su s. Se s> size, la capacità extra viene riempita con valori nulli. Se s

Oggetto elementAt (int a)

restituisce l'elemento esistente al numero di indice a

Set di oggetti (int a, Object o)

sostituisce l'elemento presente all'indice a con l'elemento dato o

Object [] toArray ()

restituisce un array contenente gli stessi elementi del vettore

Oggetto clone ()

L'oggetto vettoriale viene copiato

Boolean addAll (raccolta c)

aggiunge tutti gli elementi della raccolta c al vettore

Booleano addAll (int a, Collection c)

inserisce tutti gli elementi di Collection c al vettore all'indice specificato a

Boolean keepAll (raccolta c)

conserva tutti gli elementi nel vettore che esistono anche nella raccolta c

stringa alla data util java

List subList (int s, int e)

restituisce gli elementi, come un oggetto List, a partire da se termina con (e-1) dal vettore.

Come ogni cosa buona giunge al termine, così anche il nostro blog su Vectors in . Speriamo di essere stati in grado di coprire tutti gli aspetti dei vettori java in questo blog e che tu sia stato in grado di raccogliere alcune conoscenze sui vettori.

Assicurati di esercitarti il ​​più possibile e di ripristinare la tua esperienza.

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Siamo qui per aiutarti in ogni fase del tuo viaggio, per diventare oltre a queste domande di intervista Java, abbiamo creato un curriculum progettato per studenti e professionisti che vogliono essere uno sviluppatore Java.

Hai domande per noi? Si prega di menzionarlo nella sezione dei commenti di questo 'Vettori in Java' articolo e ti risponderemo il prima possibile.