Comparator en Java permite definir criterios de ordenamiento externos a la clase del objeto, mientras que Comparable, no modifica la clase original, sino que se implementa en una clase aparte o con expresiones lambda. Permitiendo crear múltiples formas de ordenar un mismo tipo de objeto.
Se utiliza comúnmente con métodos como Collections.sort() o List.sort(). Es muy útil cuando no se puede o no se desea alterar la clase original.