Neste tutorial, aprenderemos sobre a classe Vector e como usá-la. Também aprenderemos como ela é diferente da classe ArrayList e por que devemos usar listas de arrays.
A Vector
classe é uma implementação da List
interface que nos permite criar arrays redimensionáveis semelhantes à classe ArrayList.
Java Vector vs. ArrayList
Em Java, ArrayList
e Vector
implementa a List
interface e fornece as mesmas funcionalidades. No entanto, existem algumas diferenças entre eles.
A Vector
classe sincroniza cada operação individual. Isso significa que sempre que quisermos realizar alguma operação em vetores, a Vector
classe aplica automaticamente um bloqueio a essa operação.
Isso ocorre porque quando uma thread está acessando um vetor, e ao mesmo tempo outra thread tenta acessá-lo, uma exceção chamada ConcurrentModificationException
é gerada. Conseqüentemente, esse uso contínuo de bloqueio para cada operação torna os vetores menos eficientes.
No entanto, nas listas de array, os métodos não são sincronizados. Em vez disso, ele usa o Collections.synchronizedList()
método que sincroniza a lista como um todo.
Nota: É recomendado usar ArrayList
no lugar de Vector
porque os vetores não são seguros para thread e são menos eficientes.
Criação de um vetor
Aqui está como podemos criar vetores em Java.
Vector vector = new Vector();
Aqui, Tipo indica o tipo de uma lista vinculada. Por exemplo,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Métodos de vetor
A Vector
classe também fornece as implementações de array redimensionável da List
interface (semelhante à ArrayList
classe). Alguns dos Vector
métodos são:
Adicionar elementos ao vetor
add(element)
- adiciona um elemento aos vetoresadd(index, element)
- adiciona um elemento à posição especificadaaddAll(vector)
- adiciona todos os elementos de um vetor a outro vetor
Por exemplo,
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); ) )
Resultado
Vetor: (Cão, Cavalo, Gato) Novo Vetor: (Crocodilo, Cão, Cavalo, Gato)
Acessar elementos vetoriais
get(index)
- retorna um elemento especificado pelo índiceiterator()
- retorna um objeto iterador para acessar sequencialmente os elementos do vetor
Por exemplo,
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(", "); ) ) )
Resultado
Elemento no índice 2: Vetor de gato: cachorro, cavalo, gato,
Remover elementos vetoriais
remove(index)
- remove um elemento da posição especificadaremoveAll()
- remove todos os elementosclear()
- remove todos os elementos. É mais eficiente do queremoveAll()
Por exemplo,
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); ) )
Resultado
Vetor inicial: (cão, cavalo, gato) Elemento removido: Cavalo Novo vetor: (cão, gato) Vetor após limpar (): ()
Outros Métodos Vetoriais
Métodos | Descrições |
---|---|
set() | muda um elemento do vetor |
size() | retorna o tamanho do vetor |
toArray() | converte o vetor em uma matriz |
toString() | converte o vetor em uma string |
contains() | pesquisa o vetor para o elemento especificado e retorna um resultado booleano |