English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In this tutorial, we will learn about the Vector class and how to use it. We will also learn about the differences between it and the ArrayList class, and why we should switch to the array list.
The Vector class is an implementation of the List interface that allows us to create something similar toArrayListclass of adjustable array.
In Java, both ArrayList and Vector implement the List interface and provide the same functionality. However, there are some differences between them.
La classe Vector sincronizza ogni singola operazione. Questo significa che ogni volta che vogliamo eseguire un'operazione su un vettore, la classe Vector applicherà automaticamente un blocco di sincronizzazione a quell'operazione.
Vector类同步每个单独的操作。这意味着每当我们想对向量执行某些操作时,Vector类就会自动对该操作应用锁。
这是因为当一个线程访问一个vector时,同时另一个线程试图访问它,会生成一个称为ConcurrentModificationException的异常。因此,对每个操作持续使用锁会降低向量的效率。
但是,在ArrayList中,方法是不同步的。相反,它使用Collections.synchronizedList()方法对整个列表进行同步。注意:
创建向量(vector)
这是我们如何用Java创建向量(vector)。
Vector<Type> vector = new Vector<>();
此处,Type表示vector存储的数据类型。例如, // 创建整数类型的vector // 创建字符串类型的vector Vector<String> vector = new Vector<>();
Vector类还提供List接口的可调整大小的数组实现(类似于ArrayList类)。 一些Vector方法是:
add(element) - 向向量(vector)添加元素
add(index, element) - 将元素添加到指定位置
addAll(vector) - 将向量(vector)的所有元素添加到另一个向量(vector)
Ad esempio,
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> mammals = new Vector<>(); // 使用 add() 方法 mammals.add("Dog"); mammals.add("Horse"); // 使用索引号 mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // 使用 addAll() 方法 Vector<String> animals = new Vector<>(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); } }
Risultato di output
Vettore: [Cane, Cavallo, Gatto] Nuovo Vettore: [Coccodrillo, Cane, Cavallo, Gatto]
get(index) - Restituisce l'elemento specificato dall'indice
iterator() - Restituisce un oggetto iteratore per accedere in ordine agli elementi del vettore
Ad esempio,
import java.util.Iterator; import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Cane"); animals.add("Cavallo"); animals.add("Gatto"); // Utilizzo del metodo get() String element = animals.get(2); System.out.println("Elemento all'indice 2: " + element); // Utilizzo dell'iterator Iterator<String> iterate = animals.iterator(); System.out.print("Vettore: "); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
Risultato di output
Elemento all'indice 2: Gatto Vettore: Cane, Cavallo, Gatto,
remove(index) - Elimina l'elemento dalla posizione specificata
removeAll() - Elimina tutti gli elementi
clear() - Elimina tutti gli elementi. È più efficiente di removeAll()
Ad esempio,
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Cane"); animals.add("Cavallo"); animals.add("Gatto"); System.out.println("Vettore Iniziale: " + animals); // Utilizzo del metodo remove() String element = animals.remove(1); System.out.println("Rimosso Elemento: " + element); System.out.println("New Vector: " + animals); // Usa il metodo clear() animals.clear(); System.out.println("Vector after clear(): " + animals); } }
Risultato di output
Vector iniziale: [Dog, Horse, Cat] Elemento rimosso: Horse New Vector: [Dog, Cat] Vector after clear(): []
Metodo | Descrizione del contenuto |
---|---|
set() | Modifica l'elemento del vettore |
size() | Restituisci la dimensione del vettore |
toArray() | Converti il vettore in un array |
toString() | Converti il vettore in una stringa |
contains() | Cerca l'elemento specificato nel vettore e restituisci un valore booleano |