Disha, compareTo() is implemented when you use the Comparable interface--This is used if it is sufficient to sort your collection based on just one criteria/object key/field.
compare() -- implemented in Comparator interface. You can define different classes for each of your criteria and thus it enables you to sort your collection in many different ways.
For eg, if you have a collection that stores Employee details. If you want to sort this collection based on only the Employee ID, then you might use Comparable interface.
On the other hand, if you want to have two methods--one for sorting the collection based on Employee's first name and the other method for sorting based on Employee's last name, you need to use Comparator interface. Inside the compare() method of Comparator implementation class, you mention what is the criteria for comparison (whether ID, first name or last name).