Nearby lessons
87 of 125Java - Iterators (The Three Cursors)
📌 What You Will Learn
- What the Collection Framework is and why we need it
- List, Set, Map and Queue — the four big families
- Choosing the right collection for the right job
- Comparable vs Comparator
- The internal working of HashMap (interview favourite)
Iterators (The Three Cursors) is a core concept of the Java language. This lesson explains The Three Cursors — Enumeration, Iterator, ListIterator with complete, runnable code examples, clear step-by-step explanations, and common mistakes to avoid with exam-style MCQs at the end.
The Three Cursors — Enumeration, Iterator, ListIterator
A cursor is a tool that lets you walk through a collection element by element. There are three cursors in Java:
| Cursor | Version | Applicable to | Operations |
|---|---|---|---|
| Enumeration | JDK 1.0 (legacy) | Only legacy classes (Vector, Hashtable) | Only read (hasMoreElements, nextElement) |
| Iterator | JDK 1.2 | All Collection classes (universal) | Read + remove |
| ListIterator | JDK 1.2 | Only List classes | Read + remove + add, and move both forward and backward |
Trainer's Note: Fail-fast rule: if you change a collection while iterating with a cursor (other than through the cursor's own methods), you get ConcurrentModificationException. So always remove elements using the cursor's remove(), not the collection's remove().
Example01
📝 Key Takeaways
- Collection is an interface; Collections is a utility class with static helpers.
- List = ordered, allows duplicates. Set = no duplicates. Map = key-value pairs. Queue = FIFO.
- ArrayList is the everyday list; HashMap is the everyday map.
- HashMap works on hashCode + buckets; collisions chain, then become trees (Java 8+).
- Comparable (compareTo) is the natural order; Comparator (compare) gives custom order.
- Always override equals() and hashCode() together for your own objects.
- Collections.sort() and Collections.reverse() are the handy helpers.
🧠 Test Your Knowledge
1 QuestionsProgress: 0 / 1