What is the difference between ArrayList and LinkedList?
Both implement List but use different internal structures.
ArrayList — backed by a dynamic array. O(1) random access via index; O(n) insert/delete in the middle. Best for read-heavy workloads.
LinkedList — doubly-linked list of nodes. O(1) insert/remove at head/tail (given a reference); O(n) indexed access. Higher per-element memory due to next/prev pointers. Implements
Deque.
Rule — default to
ArrayList; useLinkedList(orArrayDeque) only when you need queue/deque semantics.
ArrayList wins in practice for almost all cases due to cache locality. Know the O(1) vs O(n) trade-offs for each operation.
The practical recommendation to prefer ArrayList shows real-world experience over theoretical knowledge.