Цель: отсортировать Set по возрастанию имен файлов из переданных полных путей до файла. Проблема: реализую интерфейс Comparator<String> у главного класса и переопределяю метод int compare, но почему-то мой Set игнорирует логику в переопределенном методе compare и использует стандартную реализацию для сравнивания строк. Смог добиться нужного результат только с помощью создания дополнительного класса, который реализует Comparator<String> и указал в при инициализации Set этот класс как компоратор, который нужно использовать. (в коде закомментированная строка // TreeSet<String> treeSet = new TreeSet<>(comparator); ) Вопрос: почему Set не использует метод compare который я переопределил? Ожидаемый вывод: F:\ttt\sdf\a.txt F:\ttt\b.txt F:\ttt\c.txt F:\ttt\fwef\d.txt F:\ttt\k.txt F:\ttt\z.txt __________
public class Testiki implements Comparator<String> {
    private static TreeSet<String> treeSet = new TreeSet<>();

    public static void main(String[] args) throws IOException {
       /*
        Цель: отсортировать Set по возрастанию имен файлов из
        переданных полных путей до файла
        */

        Comparator<String> comparator = new compareByFileName();
        //TreeSet<String> treeSet = new TreeSet<>(comparator);

        treeSet.add("F:\\ttt\\c.txt");
        treeSet.add("F:\\ttt\\b.txt");
        treeSet.add("F:\\ttt\\sdf\\a.txt");
        treeSet.add("F:\\ttt\\fwef\\d.txt");
        treeSet.add("F:\\ttt\\z.txt");
        treeSet.add("F:\\ttt\\k.txt");


        treeSet.forEach(System.out::println);
        System.out.println("__________");

    }


    @Override
    public int compare(String o1, String o2) {
        String firstFileName = o1.substring(o1.lastIndexOf("\\") + 1);
        String secondFileName = o2.substring(o2.lastIndexOf("\\") + 1);
        return firstFileName.compareTo(secondFileName);
    }

}

class compareByFileName implements Comparator<String> {
    @Override
    public int compare(String o1, String o2) {
        String firstFileName = o1.substring(o1.lastIndexOf("\\") + 1);
        String secondFileName = o2.substring(o2.lastIndexOf("\\") + 1);
        return firstFileName.compareTo(secondFileName);
    }
}