My questions is basically divided into two sub-questions:
Comparable talks about natural ordering. Who is stopping us from implementing a non-natural ordering login in the compareTo method ?
Comparator can do the same stuff as Comparable (ASC or DESC sort). So the only reason it exists is because that if we have a third party class which we cannot change (make it implement Comparable) then we can externalise the sorting logic using Comparator. Is this correct ?