ArrayList indexes in constant time; LinkedList is a deque with cheap ends but linear indexing. Prefer ArrayList unless you genuinely need queue behaviour.
List<Integer> arrayList = new ArrayList<>();
Deque<Integer> deque = new ArrayDeque<>();
for (int i = 0; i < 5; i++) { arrayList.add(i); deque.addFirst(i); }
System.out.println("ArrayList : " + arrayList);
System.out.println("ArrayDeque addFirst: " + deque);
System.out.println("random access get(2) = " + arrayList.get(2));
System.out.println("deque peekFirst = " + deque.peekFirst() + ", peekLast = " + deque.peekLast());
ArrayList : [0, 1, 2, 3, 4]
ArrayDeque addFirst: [4, 3, 2, 1, 0]
random access get(2) = 2
deque peekFirst = 4, peekLast = 0
Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.
Published 2026-07-30