Fala Luciano, tudo bem?
O segredo dessa ordenação está nessa linha:
lista.sort(comparator);
Para cada elemento da lista será executado o objeto informado como argumento (que no caso é objeto "comparator") para classificar se o elemento atual vem antes ou depois do próximo elemento. Na prática, o método .sort já está implementado na linguagem Java. Ou seja, o que a gente precisa desenvolver é uma classe que implemente (explicitamente ou implicitamente) a interface Comparator que o método .sort espera :)
Dica: prossiga com os estudos que com o tempo tudo vai fazer sentido. Quando você chegar nesse curso: https://cursos.alura.com.br/course/java8-lambdas vai ter uma visão de como funciona esse método sort e vai entender mais sobre as interfaces funcionais do Java 8 :)
Por curiosidade, o código do método .sort que pode ser encontrado dentro do JDK é esse aqui:
default void sort(Comparator<? super E> c) {
Object[] a = this.toArray();
Arrays.sort(a, (Comparator) c);
ListIterator<E> i = this.listIterator();
for (Object e : a) {
i.next();
i.set((E) e);
}
}
Abraço!