Difference between Comparable and Comparator interface.
Comparable.
Comparator.
Class whose objects to be sorted must implement this interface and to implement compareTo(Object) method.
Class whose objects to be sorted do not need to implement this interface. Instead a third class can implement this interface to sort and implement compare method.
Sorting logic must be in same class whose objects are being sorted. Hence this is called natural ordering of objects.
Sorting logic is in separate class. Hence we can write different sorting based on different attributes of objects to be sorted.
Collections.sort(List).
Objects will be sorted on the basis of CompareTo method.
Collections.sort(List, Comparator).
Objects will be sorted based on the Compare method in Comparator.