En la práctica, ¿cuál es la mejor opción por defecto para una lista de uso general: ArrayList o LinkedList?
Opciones
LinkedList, porque siempre es más rápida en todas las operacionesArrayList: acceso rápido por índice y compacta en memoria (Opción correcta)- Se comportan exactamente igual en velocidad y memoria
LinkedList, porque es thread-safe yArrayListno
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.