Vector / ArrayList

5 respostas
B

pessoal , to com uma duvida. Quando utilizo um vector, por exemplo, e adciono nele por exemplo 20 objetos, apos adciona-los o certo seria que ele tivesse 19 posições . Mas debugando o codigo vi que são criadas varias outras posições com o valor null. O mesmo ocorre no ArrayList .
Porém … quando utilizo o metodo Arraylist.trimToSize(); O ARRAY FICA REALMENTE COM A QUANTIDADE DE POSIÇÕES QUE EU INSERI.
FAZENDO A MESMA COISA NO VECTOR(Vector.trimToSize()) O MESMO NAO OCORRE !
PQ O VECTOR NÃO ADIMITE A QUANTIDADE DE POSIÇÕES QUE EU INSERI ?

5 Respostas

M

nunca vi isso acontecendo !
qual a versão do j2sdk que vc tem ?
hah, teria como postar o código de teste que vc fez para ferificar isso ? só pra ver se naum é algo do código !

Abrço,
Maicon

V

É normal porque um vector adiciona uma quantidade X de posições de uma só vez para ficar mais rápido, mas dá para alterar isto na criação do Vecto é só criálo sem argumentos ou passar o número 1 como arguento.

M

A classe Vector só não ficou deprecated para manter a compatibilidade com quem já usava. O que recomendo mesmo é usar ArrayList, já que a funcionalidade é a mesma.
ArrayList ainda traz um adendo que é a “não sincronização”, o que o torna mais rápido. A classe Vector, impacta na performance, quando existe a possibilidade de se usar paralelamente a inserção de elementos…

E

“morcegao”:
A classe Vector só não ficou deprecated para manter a compatibilidade com quem já usava. O que recomendo mesmo é usar ArrayList, já que a funcionalidade é a mesma.
ArrayList ainda traz um adendo que é a “não sincronização”, o que o torna mais rápido. A classe Vector, impacta na performance, quando existe a possibilidade de se usar paralelamente a inserção de elementos…

Realmente o arrayList nao é sincronizado, e oVector sim, porem o ArrayList é mais rapido, mas pr determinadas siituacoes e mais segura usar Vector. :lol:

M

Como comentei: Se não for fazer acesso paralelo ao array, vale a pena o uso de ArrayList.
Traduzindo o que quero dizer com Acesso paralelo, seria a inserção de dois elementos exatamente no mesmo momento. Isso acontece quando há uso de socket (com vários clientes) integrado com o uso de Threads.
Ratificando o que disse Vector tem o seu lugar e não pode ser deprecated… :oops:

Att

Criado 15 de agosto de 2004
Ultima resposta 18 de ago. de 2004
Respostas 5
Participantes 5