English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender a classe Vector e como usá-la. Também aprenderemos as diferenças entre ela e a classe ArrayList, e por que devemos usar a lista de arrays.
Vector类是List接口的一个实现,它允许我们创建类似于ArrayList类的可调整大小的数组。
在Java中,ArrayList和Vector都实现List接口并提供相同的功能。但是,它们之间存在一些差异。
Vector类同步每个单独的操作。这意味着每当我们想对向量执行某些操作时,Vector类就会自动对该操作应用锁。
这是因为当一个线程访问一个vector时,同时另一个线程试图访问它,会生成一个称为ConcurrentModificationException的异常。因此,对每个操作持续使用锁会降低向量的效率。
但是,在ArrayList中,方法是不同步的。相反,它使用Collections.synchronizedList()方法对整个列表进行同步。
注意:由于向量(vector)不是线程安全的并且效率较低,因此建议使用ArrayList代替Vector。
这是我们如何用Java创建向量(vector)。
Vector<Type> vector = new Vector<>();
此处,Type表示vector存储的数据类型。例如,
//创建整数类型的vector Vector<Integer> vector = new Vector<>(); //创建字符串类型的vector Vector<String> vector = new Vector<>();
Vector类还提供List接口的可调整大小的数组实现(类似于ArrayList类)。 一些Vector方法是:
add(element) - 向向量(vector)添加元素
add(index, element) - 将元素添加到指定位置
addAll(vector) - 将向量(vector)的所有元素添加到另一个向量(vector)
Por exemplo,
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); // Usar o método addAll() Vector<String> animals = new Vector<>(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("Novo Vector: ") + animais); } }
Resultado de Saída
Vector: [Dog, Horse, Cat] Novo Vector: [Crocodile, Dog, Horse, Cat]
get(index) - Retorna o elemento especificado pelo índice
iterator() - Retorna o objeto iterador para acessar os elementos do vetor em ordem
Por exemplo,
import java.util.Iterator; import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Usar o método get() String element = animals.get(2); System.out.println("Elemento na posição" 2: " + element); // Usar iterator() Iterator<String> iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
Resultado de Saída
Elemento na posição 2: Cat Vector: Dog, Horse, Cat,
remove(index) - Remover elemento a partir de uma posição específica
removeAll() - Remover todos os elementos
clear() - Remover todos os elementos. É mais eficiente do que removeAll()
Por exemplo,
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Vector inicial: " + animais); //Usar o método remove() String element = animals.remove(1); System.out.println("Elemento Removido: ") + element); System.out.println("Novo Vector: ") + animais); // Usar o método clear() animals.clear(); System.out.println("Vector após clear(): ") + animais); } }
Resultado de Saída
Vetor Inicial: [Cachorro, Cavalo, Gato] Elemento Removido: Cavalo Novo Vector: [Cachorro, Gato] Vector após clear(): []
Método | Descrição do Conteúdo |
---|---|
set() | Alterar o elemento do vetor |
size() | Retornar o tamanho do vetor |
toArray() | Converter um vetor em um array |
toString() | Converter um vetor em uma string |
contains() | Procurar um elemento específico no vetor e retornar um valor booleano |