Quando usar o LinkedList sobre o ArrayList em Java?

I'sempre foi um para simplesmente usar:

List<String> names = new ArrayList<>();

Eu uso a interface como nome de tipo para portabilidade, para que quando eu fizer perguntas como estas eu possa retrabalhar meu código.

Quando deve LinkedList ser utilizado sobre ArrayList e vice-versa?

É uma questão de eficiência. A LinkedList é rápida para adicionar e excluir elementos, mas lenta para acessar um elemento específico. A `ArrayList' é rápida para acessar um elemento específico, mas pode ser lenta para adicionar a qualquer extremidade, e especialmente lenta para excluir no meio.

Array vs. ArrayList vs. LinkedList vs. Vector vai mais fundo, assim como Lista ligada.

Comentários (0)

A "ArrayList" é acessível aleatoriamente, enquanto a "LinkedList" é realmente barata para expandir e remover elementos. Para a maioria dos casos, a ArrayList está bem.

A menos que você tenha criado grandes listas e medido um gargalo, você provavelmente nunca precisará se preocupar com a diferença.

Comentários (8)

Depende de quais operações você estará fazendo mais na Lista.

A "ArrayList" é mais rápida para aceder a um valor indexado. É muito pior quando se insere ou elimina objectos.

Para saber mais, leia qualquer artigo que fale sobre a diferença entre arrays e listas ligadas.

Comentários (1)