Comparator y comparable en java
Toda colección que ordene sus elementos en orden natural, hace uso de estas características para poder compararlos. Comparator/Comparable definen la forma en la que un objeto se compara de manera "natural". String implementa Comparable es por eso que TreeSet<String> ordena las cadenas de forma alfabetica (natural).
Ejemplos de clases en java que hacen uso de elementos comparables son: TreeSet, TreeMap, elementos de una lista si se desea ordenarlos con Collections.sort.
Indica que un objeto es comparable, la clase lo debe implementar para indicar que el objeto puede ser comparado.
Compara 2 objetos, es muy similar a Comparable sólo que este se define fuera de la clase pues sirve para indicar la comparación entre dos objetos.