Define a Comparator. Mention the methods provided by the Comparator interface. Illustrate its use with a program that demonstrates sorting elements in a TreeSet in reverse order.
Answer:-
Comparator Interface in Java
A Comparator is an interface used to define custom ordering of objects. It is mainly used when you want to sort objects in a way different from their natural order.
Methods of Comparator Interface
| Method | Description |
|---|---|
compare(T o1, T o2) | Compares two objects and returns: -1 if o1 < o2, 0 if equal, 1 if o1 > o2 |
equals(Object obj) | Checks if two comparators are equal |
reversed() | Returns a comparator with reversed order (Java 8+) |
thenComparing(...) | Chains another comparator for secondary sorting (Java 8+) |
Program: Sorting Elements in TreeSet in Reverse Order Using Comparator
import java.util.*;
public class ReverseOrderTreeSet {
public static void main(String[] args) {
// Custom comparator for reverse order
Comparator<Integer> reverseComparator = (a, b) -> b - a;
// TreeSet with custom comparator
TreeSet<Integer> set = new TreeSet<>(reverseComparator);
// Adding elements
set.add(10);
set.add(5);
set.add(20);
set.add(15);
// Output in reverse order
System.out.println("TreeSet in reverse order: " + set);
}
}
Output
TreeSet in reverse order: [20, 15, 10, 5]
