Vector
. Mais que um Simples ArrayList Sincronizado.O Vector é a resposta quando a segurança em ambientes multi-thread é crucial. Entretanto, essa segurança tem seu preço, o Vector não é tão ágil quanto o ArrayList. Enquanto este último geralmente mantém 50% de espaço pré-alocado, o Vector vai além, aumentando 100% por tamanho pré-alocado. Em termos simples, a memória do Vector tem o dobro da capacidade em relação ao seu tamanho real.
Mas por que optar pelo Vector em vez do ArrayList? A resposta está na sua sincronização embutida, tornando-o seguro para uso em ambientes com várias threads. Embora essa segurança afete o desempenho, o Vector se destaca quando a consistência dos dados é primordial.
imagem mental:
1
- Similar ao ArrayList, mas é sincronizado, sendo útil em ambientes multithread.2
- Acesso direto aos elementos através de índices.1
- A sincronização pode levar a um desempenho inferior em comparação com estruturas não sincronizadas, se não houver necessidade de concorrência.2
- O redimensionamento automático pode ser custoso.Semelhante ao ArrayList, mas com sincronização para ambientes multithread.
Cenário de uso: Em um sistema de reservas de passagens online, um Vector pode ser utilizado para armazenar a lista de assentos disponíveis, garantindo consistência em operações concorrentes.