Nearby lessons
88 of 125Java - Comparable vs Comparator
📌 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)
Comparable vs Comparator is a core concept of the Java language. This lesson explains Sorting — Comparable vs Comparator with complete, runnable code examples, clear step-by-step explanations, and common mistakes to avoid with exam-style MCQs at the end.
Sorting — Comparable vs Comparator
To sort your own objects, you use either Comparable or Comparator.
- Comparable — the class itself decides its natural sorting order. Override compareTo(). Collections.sort(list) uses it.
- Comparator — a separate class decides a custom order (like sorting by marks instead of name). Pass it to Collections.sort(list, comparator).
Comparable vs Comparator — Comparison Table
| Point | Comparable | Comparator |
|---|---|---|
| Where it lives | Inside the class itself (natural order) | Separate class/lambda (custom order) |
| Method | compareTo() | compare() |
| Sort call | Collections.sort(list) | Collections.sort(list, cmp) |
| Multiple orderings? | Only one natural order | Many custom orders possible |
| Package | java.lang | java.util |
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