Repaso
English
Java CoreBaseJV-11

En la práctica, ¿cuál es la mejor opción por defecto para una lista de uso general: ArrayList o LinkedList?

Opciones

  1. LinkedList, porque siempre es más rápida en todas las operaciones
  2. ArrayList: acceso rápido por índice y compacta en memoria (Opción correcta)
  3. Se comportan exactamente igual en velocidad y memoria
  4. LinkedList, porque es thread-safe y ArrayList no

Respuesta

ArrayList: acceso rápido por índice y compacta en memoria; LinkedList rara vez es mejor

Por qué

ArrayList guarda los elementos en un array redimensionable: get(i) es instantáneo (O(1)), añadir al final es rápido y los elementos están juntos en memoria, algo que las CPU aprovechan.

LinkedList guarda cada elemento en un nodo aparte con enlaces. Insertar en el medio solo es barato si ya tienes la posición; encontrarla cuesta O(n), y cada nodo gasta memoria extra.

Usa ArrayList por defecto, y ArrayDeque cuando necesites una cola o una pila.

Recuerda

Por defecto, ArrayList.

Términos clave

Practica esta pregunta en Repaso