O que é preferível usar: um Vector ou um Array de tamanho pré definido?
Alguém saberia dizer quais as vantagens do Vector, tirando que ele pode ter tamanho dinâmico? E desvantagens do Vector?
O que é preferível usar: um Vector ou um Array de tamanho pré definido?
Alguém saberia dizer quais as vantagens do Vector, tirando que ele pode ter tamanho dinâmico? E desvantagens do Vector?
De primeira, só posso dizer que os métodos da classe Vector são thread-safe. :-o
Cara,
O Vector no Java é uma coleção legada. Não é interessante usá-la, apenas quando necessário.
Quando pode ser necessário?
Quando você está trabalhando com múltiplas threads e precisa de uma coleção sincronizada. Esta é a única vantagem do Vector em relação ao ArrayList.
O fato do Vector ser sincronizado torna as operações em cima desta coleção muito mais custozas e consequentemente mais lentas.
Em Java todas as coleções acabam por ser dinâmicas em termos de tamanho, portanto nisso não à muita diferença entre elas.
Pessoal, qualquer coisa me corrijam…
abraço
Vector é sincronizado, ou seja é thread safe, o que é ruim muito ruim para performance… e o ArrayList não.
Não há razão para usar Vector, só em casos muito especificos, regra geral é ArrayList.
Para j2me tem esta implementação:
http://jsourcery.com/api/j2mepolish.org/j2mepolish/1.2.4/de/enough/polish/util/ArrayList.html
apesar de que o pessoal ñ percebeu que aqui é o fórum de j2me onde ñ tem ArrayList, tudo que foi dito sobre a classe Vector é válido, a sincronização de suas funções deixa ele muito lento, no geral é melhor fazer o vetorzão mesmo
a desvantagem é que vai ser complicado pra vc ficar removendo elementos, mas caso precise disso toda hora então pode ser melhor vc criar uma estrutura como uma lista
flw, t+
Valeu pelas dicas galera… Já estou substituindo os Vetores de meu código por Arrays.
O foda é ter que estabelacer um tamanho máximo pré definido ao criar o array, isto aloca todo o tamanho reservado na memória mesmo que não seja usado. No JME falata algo que possa ter o tamanho dinâmico.