¿Cuándo utilizar LinkedList en lugar de ArrayList en Java?

Siempre he sido de los que simplemente usan:

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

Utilizo la interfaz como nombre de tipo para la portabilidad, para que cuando haga preguntas como estas pueda rehacer mi código.

¿Cuándo debe usarse LinkedList sobre ArrayList y viceversa?

Es una cuestión de eficiencia. La lista enlazada es rápida para añadir y eliminar elementos, pero es lenta para acceder a un elemento específico. La lista ArrayList es rápida para acceder a un elemento específico, pero puede ser lenta para añadir en cualquiera de los extremos, y especialmente lenta para eliminar en el medio.

Array vs ArrayList vs LinkedList vs Vector profundiza más, al igual que Lista enlazada.

Comentarios (0)

ArrayList es accesible de forma aleatoria, mientras que LinkedList es realmente barato de ampliar y eliminar elementos. Para la mayoría de los casos, ArrayList está bien.

A menos que haya creado grandes listas y haya medido un cuello de botella, probablemente nunca tendrá que preocuparse por la diferencia.

Comentarios (8)

Depende de las operaciones que vayas a realizar más en la Lista.

ArrayList es más rápido para acceder a un valor indexado. Es mucho peor cuando se insertan o borran objetos.

Para saber más, lee cualquier artículo que hable de la diferencia entre arrays y listas enlazadas.

Comentarios (1)