In questo tutorial, impareremo la classe Vector e come usarla. Impareremo anche in che modo è diverso dalla classe ArrayList e perché dovremmo usare invece elenchi di array.
La Vector
classe è un'implementazione List
dell'interfaccia che ci consente di creare array ridimensionabili simili alla classe ArrayList.
Java Vector vs ArrayList
In Java, sia ArrayList
e Vector
implementa l' List
interfaccia e fornisce le stesse funzionalità. Tuttavia, esistono alcune differenze tra di loro.
La Vector
classe sincronizza ogni singola operazione. Ciò significa che ogni volta che vogliamo eseguire qualche operazione sui vettori, la Vector
classe applica automaticamente un blocco a tale operazione.
È perché quando un thread accede a un vettore e allo stesso tempo un altro thread tenta di accedervi, ConcurrentModificationException
viene generata un'eccezione chiamata . Quindi, questo uso continuo del blocco per ogni operazione rende i vettori meno efficienti.
Tuttavia, negli elenchi di array, i metodi non sono sincronizzati. Invece, utilizza il Collections.synchronizedList()
metodo che sincronizza l'elenco nel suo insieme.
Nota: si consiglia di utilizzare ArrayList
al posto di Vector
perché i vettori non sono sicuri per i thread e sono meno efficienti.
Creazione di un vettore
Ecco come possiamo creare vettori in Java.
Vector vector = new Vector();
Qui, Tipo indica il tipo di un elenco collegato. Per esempio,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Metodi di vettore
La Vector
classe fornisce anche le implementazioni di array ridimensionabili List
dell'interfaccia (simili alla ArrayList
classe). Alcuni dei Vector
metodi sono:
Aggiungi elementi al vettore
add(element)
- aggiunge un elemento ai vettoriadd(index, element)
- aggiunge un elemento alla posizione specificataaddAll(vector)
- aggiunge tutti gli elementi di un vettore a un altro vettore
Per esempio,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) )
Produzione
Vettore: (Cane, Cavallo, Gatto) Nuovo vettore: (Coccodrillo, Cane, Cavallo, Gatto)
Accedi agli elementi vettoriali
get(index)
- restituisce un elemento specificato dall'indiceiterator()
- restituisce un oggetto iteratore per accedere in modo sequenziale agli elementi vettoriali
Per esempio,
import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Produzione
Elemento all'indice 2: Vettore gatto: cane, cavallo, gatto,
Rimuovi elementi vettoriali
remove(index)
- rimuove un elemento dalla posizione specificataremoveAll()
- rimuove tutti gli elementiclear()
- rimuove tutti gli elementi. È più efficiente diremoveAll()
Per esempio,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) )
Produzione
Vettore iniziale: (Cane, Cavallo, Gatto) Elemento rimosso: Cavallo Nuovo vettore: (Cane, Gatto) Vettore dopo la cancellazione (): ()
Altri metodi vettoriali
Metodi | Descrizioni |
---|---|
set() | cambia un elemento del vettore |
size() | restituisce la dimensione del vettore |
toArray() | converte il vettore in un array |
toString() | converte il vettore in una stringa |
contains() | cerca nel vettore l'elemento specificato e restituisce un risultato booleano |