Collections
The Java Collections Framework (JCF) provides a unified architecture to store, manipulate, and process groups of objects efficiently. It offers ready-made data structures, standard algorithms, and common interfaces, making Java code clean, scalable, and performant. This is a must-know topic for interviews and real-world Java development.
What Is the Java Collections Framework?
- A set of interfaces, classes, and algorithms
- Used to store and manage groups of objects
- Located mainly in java.util package
- Replaces legacy data structures (Vector, Hashtable)
Why Collections Are Needed
- Dynamic size (unlike arrays)
- Built-in data structures (List, Set, Map)
- High performance and optimization
- Consistent API across data structures
- Rich utility methods (sorting, searching, etc.)
Core Components of Collections Framework
- Interfaces
Define contracts for data structures. - Implementations (Classes)
Provide concrete behavior. - Algorithms
Utility methods for searching, sorting, manipulating.
Collection Hierarchy (High-Value Interview Topic)
Iterable
└── Collection
├── List
│ ├── ArrayList
│ ├── LinkedList
│ └── Vector
├── Set
│ ├── HashSet
│ ├── LinkedHashSet
│ └── TreeSet
└── Queue
├── PriorityQueue
└── Deque (ArrayDeque)
Map (separate hierarchy)
├── HashMap
├── LinkedHashMap
├── TreeMap
└── Hashtable
Major Collection Interfaces
1️⃣ List
- Ordered collection
- Allows duplicates
- Index-based access
Examples: ArrayList, LinkedList
2️⃣ Set
- No duplicate elements
- Unordered (mostly)
Examples: HashSet, LinkedHashSet, TreeSet
3️⃣ Queue
- Follows FIFO (generally)
- Used for scheduling and buffering
Examples: PriorityQueue, ArrayDeque
4️⃣ Map (Not a sub-interface of Collection)
- Stores key–value pairs
- Keys are unique
Examples: HashMap, LinkedHashMap, TreeMap
Collections vs Arrays
| Aspect | Arrays | Collections |
|---|---|---|
| Size | Fixed | Dynamic |
| Data type | Primitive + Object | Objects only |
| Performance | Faster | Slight overhead |
| Utilities | Limited | Rich APIs |
| Flexibility | Low | High |
Commonly Used Collection Classes
| Class | 특징 |
|---|---|
| ArrayList | Fast random access |
| LinkedList | Fast insert/delete |
| HashSet | No duplicates, fast lookup |
| TreeSet | Sorted set |
| HashMap | Fast key-value access |
| TreeMap | Sorted map |
Utility Class: Collections
Provides static methods:
- sort()
- reverse()
- shuffle()
- binarySearch()
Collections.sort(list);
Iterating Collections
Common ways:
- Enhanced for-each loop
- Iterator
- ListIterator
for (String s : list) {
System.out.println(s);
}
Key Characteristics of Collections
- Store objects only (use wrapper classes)
- Grow and shrink dynamically
- Support generics for type safety
- Designed for performance and scalability
Common Beginner Mistakes
- Using wrong collection type
- Ignoring time complexity
- Forgetting generics
- Modifying collection while iterating
- Using legacy classes unnecessarily
Interview-Ready Answers
Short Answer
The Java Collections Framework is a set of classes and interfaces used to store and manipulate groups of objects.
Detailed Answer
The Java Collections Framework provides a unified architecture of interfaces and classes such as List, Set, Queue, and Map, enabling efficient storage, retrieval, and manipulation of data. It offers dynamic sizing, built-in algorithms, and consistent APIs.
Key Takeaway
Collections are the backbone of Java data handling. Choosing the right collection type directly impacts performance, readability, and scalability.