Vettore in Java | Classe vettoriale Java con esempi

Pubblicato: 2021-05-26

Nella programmazione, una delle strutture dati più comunemente utilizzate è Vector in Java. Gli array sono strutture dati statiche che possono memorizzare dati in modo lineare. Allo stesso modo, anche vector in java memorizza i dati in modo lineare, ma non sono limitati a una dimensione fissa. Invece, le sue dimensioni possono crescere o ridursi secondo il requisito. La classe padre è la classe AbstractList ed è implementata su List Interface.

Prima di iniziare a utilizzare i vettori, importalo da java.util.package come segue:

importa java.util.Vector

Sommario

Dichiarazione e valutazione degli elementi di un vettore

Ecco come viene dichiarato un vettore in Java:

la classe pubblica Vector<V> estende AbstractList<V>

implementa List<V>, RandomAccess, Cloneable, Serializable

Qui, V è il tipo di elemento che può essere int, string, char, ecc.

Come accediamo ai membri dei dati negli array, possiamo farlo anche nei vettori, usando l'indice dell'elemento. Ad esempio, è possibile accedere al secondo elemento del vettore E come E[2].

Alcuni errori comuni commessi durante la dichiarazione di un vettore in java:

  • Viene generata un'eccezione IllegalArgumentException se la dimensione iniziale del vettore è un valore negativo
  • Viene generata un'eccezione NullPointerException se la raccolta specificata è null
  • La dimensione del vettore è minore o uguale alla capacità del vettore
  • La capacità viene raddoppiata in ogni ciclo di incremento se l'incremento vettoriale non è specificato

Costruttori

1. Vector(int initialCapacity, int Increment)

Questo crea un vettore in Java con una capacità iniziale come specificato e viene specificato anche l'incremento. Con incremento, viene specificato il numero di elementi allocati ogni volta che il vettore viene ridimensionato verso l'alto.

Sintassi: Vector<V> e = new Vector<V>(int initialCapacity, int Increment);

2. Vector(int initialCapacity)

Crea un vettore in java con una capacità iniziale uguale alla dimensione specificata.

Sintassi: Vector<V> e = new Vector<V>(int initialCapacity);

3. Vettore()

Crea un vettore in Java con una capacità iniziale predefinita di 10.

Sintassi: Vector<V> e = new Vector<V>();

4. Vettore (raccolta c)

Crea un vettore in java i cui elementi sono quelli della collezione c.

Sintassi: Vector<V> e = new Vector<V>(Collezione c);

Ecco un esempio per dimostrare la creazione e l'uso di un vettore in Java:

Codice

importa java.util.*;

classe pubblica Principale{

public static void main(String[] args)

{

// Crea un vettore predefinito

Vector a = new Vector();

// Crea un vettore di dimensione specificata

Vettore b = nuovo Vettore(20);

// Crea un vettore di dimensione e incremento specificati

Vettore c = nuovo Vettore(30,10);

b.aggiungi(100);

b.aggiungi(200);

b.aggiungi(300);

// Crea un vettore con una raccolta specificata

Vettore d = nuovo Vettore(b)

System.out.println(“Vettore a di capacità ” + a.capacity());

System.out.println(“Vettore b di capacità ” + b.capacity());

System.out.println(“Vettore c di capacità ” + c.capacity());

System.out.println(“Vettore d di capacità ” + d.capacity());

}}

Produzione

Nota: .capacity() viene utilizzato per restituire la capacità del vettore.

Un vettore in Java ha tre parametri protetti come segue:

1. Int elementCount()- Indica il numero di elementi contenuti in un vettore

2. Int capcityIncremen()- Quando la dimensione del vettore diventa maggiore della capacità, la capacità viene automaticamente aumentata con questo.

3. Object[] elementData()- Gli elementi del vettore sono memorizzati nell'array.

Metodi

Ecco alcuni metodi di vettore utilizzati di frequente in Java:

1. Aggiungi elementi

Boolean add(Oggetto o)- Un elemento viene aggiunto alla fine del vettore

Void add( int index V element)- L'elemento specificato viene aggiunto all'indice specificato nel vettore

Codice per aggiungere gli elementi in Vector in java:

importa java.util.*;

importa java.io.*;

classe pubblica AddElementsToVector {

public static void main(String[] arg)

{

// Crea un vettore predefinito

Vector a = new Vector();

// Aggiunta di elementi utilizzando il metodo add()

a.aggiungi(1);

a.aggiungi(2);

a.add(“vect”);

a.aggiungi("per");

a.aggiungi(3);

System.out.println(“Il vettore a è ” + a);

// Crea un vettore generico

Vettore<Intero> b = nuovo Vettore<Intero>();

b.aggiungi(0);

b.aggiungi(1);

b.aggiungi(2);

System.out.println(“Il vettore b è ” + b);

}

}

Produzione

2. Rimuovi elementi

Boolean Remove(object o) – utilizzato per rimuovere l'elemento in corrispondenza dell'indice specificato nel vettore

Quando l'elemento viene rimosso, tutti gli elementi vengono spostati a sinistra per riempire gli spazi; gli indici vengono quindi aggiornati.

Codice per illustrare la rimozione di elementi da vector in java:

importa java.util.*;

importa java.io.*;

classe pubblica Rimuovi {

public static void main(String[] arg)

{

// Crea un vettore predefinito

Vector a = new Vector();

// Aggiunta di elementi utilizzando il metodo add()

a.aggiungi(1);

a.aggiungi(2);

a.add(“vect”);

a.aggiungi("per");

a.aggiungi(4);

// Rimuovi elemento

a.rimuovere(2);

// Dai un'occhiata

System.out.println(“dopo la rimozione: ” + a);

}

}

Produzione

Checkout: come fare una carriera di successo in Java?

3. Cambia elementi

Il metodo set() può essere utilizzato per modificare l'elemento dopo aver aggiunto gli elementi. L'indice dell'elemento può essere referenziato come un vettore è indicizzato. Questo metodo prende l'indice e l'elemento aggiornato.

Codice per modificare gli elementi nel vettore in java

importa java.util.*;

classe pubblica Aggiorna {

public static void main(String args[])

{

// Crea un vettore vuoto

Vettore<Intero> a = nuovo Vettore<Intero>();

// Aggiungi elementi

a.aggiungi(1);

a.aggiungi(2);

a.aggiungi(3);

a.aggiungi(10);

a.aggiungi(20);

// Schermo

System.out.println(“Vettore: ” + a);

// Sostituire

System.out.println("Sostituzione"

+ a.set(0, 22));

System.out.println("Sostituzione "

+ a.set(4, 50));

// Visualizza il vettore modificato

System.out.println(“Il nuovo vettore è:” + a);

}

}

Produzione

4. Iterare il vettore

Esistono diversi modi per scorrere un vettore. Uno di questi è il metodo get(). Ecco un programma per iterare gli elementi in un vettore in java:

importa java.util.*;

classe pubblica Itera {

public static void main(String args[])

{

// creando un'istanza di vector

Vettore<Stringa> a = nuovo Vettore<>();

// Aggiungi elementi usando il metodo add()

a.add(“vettore”);

a.aggiungi("in");

a.aggiungi(1, “java”);

// Usa il metodo Get e il ciclo for

for (int i = 0; i < a.size(); i++) {

System.out.print(a.get(i) + ” “);

}

System.out.println();

// Usa per ogni ciclo

per (Stringa : a)

System.out.print(str + ” “);

}

}

Produzione

Leggi: Architettura e componenti Java

Altri metodi importanti

  • Int size() – utilizzato per restituire la dimensione del vettore
  • Object get(int index) – utilizzato per restituire l'elemento nella posizione specificata nel vettore
  • Object firstElement() – utilizzato per restituire il primo elemento di vector in java
  • Object lastElement() – utilizzato per restituire l'ultimo elemento di vector in java
  • Booleano uguale (Oggetto o) – usato per confrontare il vettore con l'oggetto dato per l'uguaglianza. Restituisce true se tutti gli elementi sono veri ai rispettivi indici
  • Void trimtosize() – utilizzato per rimuovere capacità aggiuntiva e mantenere la capacità uguale alla dimensione

Maggiori informazioni sui vettori

  • Un vettore in java è una struttura dati dinamica a cui è possibile accedere utilizzando un indice intero.
  • Sebbene simile a ArrayList, è sincronizzato e contiene alcuni metodi legacy non disponibili nel framework di raccolta.
  • L'ordine di inserzione viene mantenuto.
  • Viene utilizzato raramente in un ambiente non thread.
  • A causa della sincronizzazione, i vettori hanno prestazioni scarse nella ricerca, aggiunta, aggiornamento ed eliminazione di elementi.
  • Gli iteratori della classe vector falliscono rapidamente e generano l'eccezione ConcurrentModificationException in caso di modifica simultanea.
  • Uno stack è la sua sottoclasse direttamente nota.

Allocazione della memoria nei vettori

Come visto sopra, i vettori non hanno una dimensione definita. Invece, un vettore in Java può cambiare le sue dimensioni in modo dinamico. Si presume che i vettori allochino spazio indefinito per memorizzare gli elementi. Tuttavia, non è così. La dimensione del vettore viene modificata in base a due campi: "incremento della capacità" e "capacità".

Quando viene dichiarato un vettore, viene allocato un campo 'capacità' uguale alla dimensione e possono essere aggiunti elementi uguali alla capacità. Non appena viene inserito l'elemento successivo, la dimensione dell'array viene aumentata della dimensione di 'capacityIncrement'. Ciò offre al vettore la possibilità di modificarne le dimensioni: la capacità raddoppia per un costruttore predefinito quando viene inserito un nuovo elemento.

Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Vantaggi di Vector in Java

La dimensione dinamica dei vettori evita lo spreco di memoria e la dimensione della nostra struttura dati può essere modificata in qualsiasi momento nel mezzo del programma.

Sia i vettori che le ArrayList sono dinamici. Tuttavia, i vettori sono più vantaggiosi in quanto:

  • I vettori sono sincronizzati.
  • Ha alcune funzioni legacy che non possono essere implementate su ArrayLists.

Conclusione

Un vettore in java è un array dinamico senza limiti di dimensione che fa parte di Java Collection Framework a partire da Java 1.2. Abbiamo visto vari costruttori e metodi di vettori comunemente usati in questo blog. Vale anche la pena notare che la classe Vector dovrebbe essere utilizzata solo in un ambiente thread-safe.

Se sei interessato a saperne di più su Java, OOP e sviluppo software full-stack, dai un'occhiata al programma Executive PG di upGrad e IIIT-B in sviluppo software - Specializzazione in sviluppo full stack, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Che cos'è un vettore in Java?

Un vettore è una struttura dati in Java. Come suggerisce il nome, un vettore è una specie di sequenza di elementi. Utilizza un array dinamico che cresce e si riduce man mano che si accede. Ha un metodo size() per ottenere la dimensione corrente del vettore e un metodo capacity() per ottenere la capacità del vettore. Questi due metodi restituiscono i valori maggiori di zero. La capacità del vettore è il numero di elementi che possono essere archiviati all'interno del vettore senza dover allocare un nuovo array. La dimensione del vettore è il numero di elementi attualmente memorizzati all'interno del vettore.

Quali sono i vantaggi dei vettori rispetto agli array?

Gli array sono di dimensioni fisse, il che significa che non possono crescere o ridursi secondo necessità. I vettori sono implementati come array ridimensionabili dinamicamente, consentendo loro di crescere e ridursi secondo necessità. Ciò è utile per una crescita costante dei dati; ad esempio, un programma che legge file di testo riga per riga potrà crescere di pari passo con la dimensione del file. I vettori sono generalmente più efficienti degli array. Questo perché i vettori sono implementati come array di riferimenti (java.lang.Objects), mentre gli array sono implementati come array di oggetti.

Che cos'è ArrayList in Java?

La classe ArrayList rappresenta una matrice dinamica. Può crescere secondo necessità per accogliere nuovi elementi. L'array è effettivamente implementato come un elenco di riferimenti agli oggetti. Ogni volta che è necessario creare un elemento, viene reso disponibile un riferimento a un nuovo oggetto. Ciò è possibile a causa del fatto che ArrayList è implementato come un elenco ridimensionabile dinamicamente. ArrayList eredita la maggior parte dei suoi metodi e campi da AbstractList. ArrayList è più veloce di un array poiché non deve creare nuovi oggetti. I metodi mutanti che modificano la dimensione dell'array come add, set e remove, sono chiamati metodi distruttivi poiché modificano permanentemente la dimensione dell'array.