Quick reference for Java Collections — ArrayList, LinkedList, HashMap, TreeMap, HashSet, TreeSet, Queue and more. When to use which.
| Class | Ordered | Duplicates | Null | Thread-safe | Best for |
|---|---|---|---|---|---|
| ArrayList | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Random access, iteration |
| LinkedList | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Frequent insert/delete at ends |
| Vector | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | Legacy — use ArrayList instead |
| CopyOnWriteArrayList | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | Read-heavy concurrent access |
| Class | Ordered | Null Key | Thread-safe | Best for |
|---|---|---|---|---|
| HashMap | ❌ No | ✅ Yes (1) | ❌ No | General purpose key-value |
| LinkedHashMap | ✅ Insertion | ✅ Yes (1) | ❌ No | Preserve insertion order |
| TreeMap | ✅ Sorted | ❌ No | ❌ No | Sorted keys, range queries |
| Hashtable | ❌ No | ❌ No | ✅ Yes | Legacy — use ConcurrentHashMap |
| ConcurrentHashMap | ❌ No | ❌ No | ✅ Yes | Concurrent read/write |
| EnumMap | ✅ Enum order | ❌ No | ❌ No | Enum keys — very fast |
| Class | Ordered | Null | Thread-safe | Best for |
|---|---|---|---|---|
| HashSet | ❌ No | ✅ Yes (1) | ❌ No | Fast lookup, no duplicates |
| LinkedHashSet | ✅ Insertion | ✅ Yes (1) | ❌ No | Unique elements, preserve order |
| TreeSet | ✅ Sorted | ❌ No | ❌ No | Sorted unique elements |
| EnumSet | ✅ Enum order | ❌ No | ❌ No | Enum values — extremely fast |
| Class | FIFO/LIFO | Null | Thread-safe | Best for |
|---|---|---|---|---|
| ArrayDeque | Both | ❌ No | ❌ No | Stack or queue — faster than Stack/LinkedList |
| LinkedList | Both | ✅ Yes | ❌ No | Queue with null elements |
| PriorityQueue | Priority | ❌ No | ❌ No | Min/max heap, task scheduling |
| ArrayBlockingQueue | FIFO | ❌ No | ✅ Yes | Bounded producer-consumer |
| LinkedBlockingQueue | FIFO | ❌ No | ✅ Yes | Unbounded producer-consumer |
| Operation | ArrayList | LinkedList | HashMap | TreeMap |
|---|---|---|---|---|
| get(i) | O(1) | O(n) | O(1) avg | O(log n) |
| add(e) | O(1) amort | O(1) | O(1) avg | O(log n) |
| remove(i) | O(n) | O(n) | O(1) avg | O(log n) |
| contains(e) | O(n) | O(n) | O(1) avg | O(log n) |
| size() | O(1) | O(1) | O(1) | O(1) |