Java Comparable — Java Technical Interview Questions & Answers

Java Comparable

Java Comparable

  • Comparable belongs to the Collections story. List = ordered, duplicates OK (ArrayList). Set = unique (HashSet). Map = key → value (HashMap). Pick by need, not by what you revised last.
  • For Comparable: ArrayList is the daily List: get(i) is fast, add at end is fast. HashMap lookup by key is average O(1). HashSet is unique values, no duplicates.
  • Use Comparable with generics: List<String>, Map<String, Integer>. Iterate with for-each or iterator. Don’t use a raw array when the size must grow.
  • Let's take this on the board with one tiny Main class — no extra files. Java Comparable — sort uses String's natural compare (case-insensitive here). Start from main, go line by line, and stop at each print. That output is the proof for Comparable.

Technical Interview Tip: One class, many Comparators — that's the power.

Code Examples for Java Comparable

Example

import java.util.*;
public class Main {
  public static void main(String[] args) {
    List<String> names = Arrays.asList("Ravi", "Asha", "Neha");
    names = new ArrayList<>(names);
    names.sort(String::compareToIgnoreCase);
    System.out.println(names);
  }
}

Java Comparable — sort uses String's natural compare (case-insensitive here).

How to Explain Java Comparable to an Interviewer

What is Comparable?

Comparable — List = order + duplicates OK. Set = unique. Map = key → value. Comparable — pick it only when that structure matches the problem. Comparable — generics List<String>. ArrayList for daily lists. HashMap for lookup.

Why do we use Comparable in Java?

Makes the program clearer or safer Comparable — List = order + duplicates OK. Set = unique. Map = key → value.

Write one small example of Comparable.

Show syntax Say what prints

What mistake do beginners make with Comparable?

Only the name, no example Comparable — using arrays for everything that must grow, or mixing List/Set/Map.

Where is Comparable used in a real program?

Day-to-day Java code