class TesteVector {
public static void main(String[] args) {
Vector nomes = new Vector();
int i = 0;
// armazena varios nomes
while (true) {
System.out.println("Digite um nome para armazenar em nomes["+i+"]");
String nome = IO.readStr();
if (nome.length() == 0) {
break;
}
nomes.insertElementAt(nome, i);
i++;
}
// imprime os nomes digitados
for (int j = 0; j < nomes.size(); j++) {
System.out.println(nomes.elementAt(j));
}
}
}[/code]
Sens, basicamente a diferença entre Vector e Arraylist está na sincronização. A classe vector é utilizada quando na sua aplicação ocorrerem vários acessos simultaneos aos elementos da coleção, o que pede a sincronização deste acessos.
Desta forma, se você não precisar deste tipo de sincronização vc pode se contentar com um Arraylist, pois do contrário vc estaria perdendo em desempenho executando funcionalidades q não precisa.
Espero ter sido claro, mas se vc quiser tirar alguma dúvida a respeito disso dá uma olhada na JavaMagazine nº 18, lá tem um artigo sobre Collections muito bom.
como o casperbox disse, a maior diferença entre o ArrayList e o Vector é a sincronização…
:arrow: ArrayList -> É mais rápido que o Vector, mas não é ThreadSafe, ou seja, em uma aplicação que utiliza várias conexões é necessário colocar os objetos do tipo ArrayList dentro de métodos/blocos “synchronized” para que não se tenha a perda na integridade dos dados.
:arrow: Vector -> É ThreadSafe, diferente do ArrayList, você não precisa definir os métodos/blocos “synchronized”, mas justamente por ser ThreadSafe não é tão rápido quanto o ArrayList.