The Java Collections Framework (JCF) is a unified architecture for storing and manipulating groups of objects.
It includes:
-
Interfaces
-
Implementations (classes)
-
Algorithms
1. Core Interfaces
1. Collection (Root Interface)
Extended by:
Map is separate (not a subtype of Collection).
2. List
-
Ordered collection
-
Allows duplicates
-
Access by index
Common Implementations:
-
ArrayList – dynamic array, fast access, slow insert/delete in middle
-
LinkedList – doubly linked list, fast insert/delete, slower access
-
Vector – synchronized (legacy)
Example:
3. Set
-
No duplicates
-
No index-based access
Implementations:
-
HashSet – unordered, fast
-
LinkedHashSet – maintains insertion order
-
TreeSet – sorted (uses Red-Black Tree)
4. Queue
Implementations:
5. Map (Key-Value Pairs)
Not part of Collection interface.
Characteristics:
-
Keys are unique
-
Values can duplicate
Implementations:
-
HashMap – unordered, fast
-
LinkedHashMap – insertion order
-
TreeMap – sorted by key
-
Hashtable – synchronized (legacy)
Example:
2. Iteration Methods
-
for-each loop
-
Iterator
-
ListIterator
-
forEach (Java 8+)
Example:
3. Performance Overview
-
ArrayList → Fast random access (O(1))
-
LinkedList → Fast insert/delete (O(1))
-
HashMap → Fast lookup (O(1) average)
-
TreeMap → Sorted, O(log n)
Choosing the right collection depends on:
4. Utility Class: Collections
Provides algorithms:
-
sort()
-
reverse()
-
shuffle()
-
binarySearch()
-
min(), max()
Example:
5. Key Concepts for Interviews
-
Difference between ArrayList and LinkedList
-
HashMap internal working (hashing, buckets)
-
Fail-fast vs fail-safe iterators
-
Comparable vs Comparator
-
Load factor and initial capacity
In short:
Java Collections Framework provides ready-made data structures with different performance characteristics. Choosing the correct implementation is critical for efficient programs.