Java Collection Framework — Detailed Interview Notes
Goal: Clear, interview-focused notes covering meaning, purpose, code examples, differences between
Set implementations, advantages & disadvantages, complexity, and typical interview questions and
answers.
--------------------------------------------------------------------------------
Quick overview
The Java Collection Framework (JCF) is a set of interfaces and classes in [Link] that provide data
structures (lists, sets, maps, queues) and algorithms (sorting, searching). It helps store, retrieve,
manipulate, and communicate aggregate data efficiently.
Purpose:
- Provide reusable, high-quality implementations of common data structures.
- Define standard interfaces so code is implementation-independent.
- Improve programmer productivity and program performance.
When to use: whenever you need a container for multiple objects — instead of writing your own data
structure.
--------------------------------------------------------------------------------
Core interfaces (hierarchy simplified)
- Collection (root for most) — extends Iterable
- List — ordered, allows duplicates (ArrayList, LinkedList, Vector)
- Set — no duplicates (HashSet, LinkedHashSet, TreeSet)
- Queue — FIFO semantics (LinkedList, PriorityQueue, ArrayDeque)
- Deque — double-ended queue (ArrayDeque, LinkedList)
- Map (not a Collection) — key-value pairs (HashMap, TreeMap, LinkedHashMap)
--------------------------------------------------------------------------------
Important implementations (what to remember)
Lists
- ArrayList — dynamic array, fast random access, slower insert/delete in middle.
- LinkedList — doubly-linked list, fast insert/delete at ends or with iterator, slower random access.
- Vector / Stack — legacy synchronized list and LIFO stack.
Sets
- HashSet — backed by HashMap internally; no order guaranteed; O(1) average ops.
- LinkedHashSet — preserves insertion order.
- TreeSet — sorted set (NavigableSet), O(log n).
Queues / Deques
- PriorityQueue — orders elements by priority.
- ArrayDeque — fast stack/queue default.
Maps
- HashMap — key-value store, average O(1).
- LinkedHashMap — maintains order (insertion/access).
- TreeMap — sorted map, O(log n).
- Hashtable — legacy synchronized map.
- ConcurrentHashMap — thread-safe.
--------------------------------------------------------------------------------
Examples
ArrayList Example:
List names = new ArrayList<>();
[Link]("Alice");
[Link]("Bob");
[Link]([Link](1));
LinkedList Example:
Deque dq = new LinkedList<>();
[Link](10);
[Link](20);
HashSet Example:
Set s = new HashSet<>();
[Link]("apple");
TreeSet Example:
Set t = new TreeSet<>();
[Link](5); [Link](1); [Link](3);
HashMap Example:
Map map = new HashMap<>();
[Link]("Alice", 30);
[Link]("Bob", 25);
--------------------------------------------------------------------------------
Differences between HashSet, LinkedHashSet, TreeSet
Feature | HashSet | LinkedHashSet | TreeSet
Order | No order | Insertion order | Sorted order
Null allowed | Yes | Yes | No (typically)
Complexity | O(1) | O(1) | O(log n)
--------------------------------------------------------------------------------
Advantages and Disadvantages
ArrayList:
+ Fast random access
- Slow insert/remove in middle
LinkedList:
+ Fast insert/remove with iterator
- Slow random access
HashSet / HashMap:
+ Fast operations
- No order; hashCode/equals required
LinkedHashSet / LinkedHashMap:
+ Predictable iteration order
- Extra memory
TreeSet / TreeMap:
+ Sorted structure
- Slower (log n)
--------------------------------------------------------------------------------
Time Complexity
ArrayList: get O(1), add O(1)*, remove O(n)
LinkedList: get O(n), addFirst/addLast O(1)
HashSet/HashMap: O(1) average
TreeSet/TreeMap: O(log n)
--------------------------------------------------------------------------------
Common Interview Q&A;
Q: Difference between ArrayList and LinkedList?
A: ArrayList = array-backed, fast random access. LinkedList = node-based, fast insert/remove.
Q: Why overriding equals() and hashCode() is important?
A: Hash-based collections rely on consistent hashing for correctness.
Q: How does HashMap work?
A: Uses hash of key to find bucket; stores entries; uses tree bins for high collisions.
Q: What is ConcurrentModificationException?
A: Thrown when a collection is modified during iteration.
--------------------------------------------------------------------------------
Best Practices
- Use interfaces for declarations.
- Choose collection by operation needs.
- Initialize with expected size to improve performance.
- Use ArrayDeque over Stack.
- Prefer ConcurrentHashMap over Hashtable.
--------------------------------------------------------------------------------