Oi… pessoal!!
Só complementando o que o Matheus disse…
A respeito de performance…
Java oferece várias classes de coleção para armazenar obejtos… a classe Vector é uma coleção desse tipo!
muitos programadores usam Vector como default para coleções simples, porque é muito fácil e conveniente de usar…
já um Array difere de um Vector de várias formas…a principal diferença entre eles é o desempenho…
o seguinte código utiliza um Array e um Vector:
public void iterarArray(int[] ar)
{
int tamanho = ar.length;
int j;
for(int i=0; i < tamanho; i++)
j = ar[i]
}
public void iterarVector(Vector vec)
{
int tamanho = vec.size();
Object j;
for(int i = 0; i < tamanho; i++)
j = vec.get();
}
esses dois códigos simplesmente percorrem um Array e um Vector…apenas um exercicio de velocidade de comparação entre Arrays e Vector.!
vc pode descobrir que a implementação do Array é mais rápida… o método iterarArray é 40 vezes mais rápido do que o método iterarVector
o método iterarVector é ainda mais lento se vc usar Enumeration ou Iterator para atravessar…
a grande diferença no desempenho entre Arrays e Vector ocorre porque:
-> os métodos get de Vector é SYNCHRONIZED…
-> o uso de Vector requer chamadas de método…
:arrow: sempre que vc criar um Vector, o código cria um array para o armazenamento !
:arrow: como o matheus disse, outra classe que podemos considerar para usar no lugar de Vector é o ArrayList…
:arrow: ArrayList não é nada menos que um Vector não sincronizado… ou seja, muito mais rápido do que do que o Vector…
os códigos anteriores , modificados com um ArrayList:
public void iterarArrayList(ArrayList al)
{
int tamanho = al.size();
Object j;
for(int i = 0; i < tamanho; i ++)
j = al.get(i);
}
:arrow: esse código com ArrayList é quatro vezes mais rápido do que o Vector, mas o Array é ainda 11 vezes mais rápido do que o ArrayList