Collections.sort () usando o comparador? [fechadas]

import java.util.*;

public class C_2 {
    public static void main(String args[]) {
        String theStrings[] = { "x", "a", "b", "c", "d" };
        List l = Arrays.asList(theStrings);
        Collections.sort(l);                            // line a
        Collections.sort(l, new ThisIsMyThing());       // line b
        System.out.println(l);
    }
}

class ThisIsMyThing implements Comparator {
    public int compare(Object o1, Object o2) {
        String s1 = (String)o1;
        String s2 = (String)o2;

        return -1 * s1.compareTo(s2);
    }
}

Eu entendo essa aulaC_2 faz a classificação com base em duas técnicas diferentes. Um é o padrãoCollections.sort(l); E o outro éCollections.sort(l,Comparator<>()); Eu não sou capaz de entender este método de classificação. Alguém pode por favor explicar isso pra mim?

questionAnswers(3)

yourAnswerToTheQuestion