SOS !Встречаемость символов! 8 уровень, 11 лекция

Решил эту задачу, проверил, все работает, но валидатор отправил меня в далекое плаванье с моим решением. Подскажите, пожалуйста, что не так, а то у меня уже третий день горит.
Вот код:
public class Solution {
public static void main(String[] args) throws Exception{
TreeMap<Integer, Integer> map = new TreeMap<>();
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
char[] array = reader.readLine().toCharArray();
for (char letter: array) {
if(map.get((int)letter) == null)
map.put((int)letter, 1);
else {
int a = map.get((int)letter);
a++;
map.put((int)letter, a);
}
}
}
reader.close();
char a;
int i;
for (Map.Entry<Integer, Integer> pair: map.entrySet()) {
i = pair.getKey();
a = (char) i;
System.out.println( a + " " + pair.getValue());
}
reader.close();
}
}
Говорит, мол, вывод должен быть отсортирован по возрастанию кода ASCII. Но он и так отсортирован, в этом и суть!

task0803. Задача "Коллекция HashMap из котов"

Всем привет) Это мое первое сообщение на форуме) Сегодня только зарегался) Я вот задачу решил, но не проходит проверку. Не могу понять, почему
Коллекция HashMap из котов
Есть класс Cat с полем имя (name, String).
Создать коллекцию HashMap<String, Cat>.
Добавить в коллекцию 10 котов, в качестве ключа использовать имя кота.
Вывести результат на экран, каждый элемент с новой строки.

Требования:
1. Объяви переменную коллекции HashMap с типом элементов String, Cat и сразу проинициализируй ee.
2. Программа не должна считывать значения с клавиатуры.
3. Метод addCatsToMap()должен добавлять в коллекцию 10 котов, согласно условию.
4. Программа должна выводить содержимое коллекции на экран, каждую пару через дефис и с новой строки.

Вот мой код:
public class Solution {
    public static void main(String[] args) throws Exception {
        String[] cats = new String[]{"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};
        HashMap<String, Cat> map = addCatsToMap(cats);

        for (Map.Entry<String, Cat> pair : map.entrySet()) {
            System.out.println(pair.getKey() + " - " + pair.getValue());
        }
    }

    public static HashMap<String, Cat> addCatsToMap(String[] cats) {
        HashMap<String,Cat> my = new HashMap<>();
        for (int i = 0; i <cats.length ; i++)
        {
            String name = "Котяра"+i;
            my.put(cats[i],new Cat(name));
        }
        return my;
    }

    public static class Cat {
        String name;

        public Cat(String name)
        {
            this.name = name;
        }

        @Override
        public String toString()
        {
            return name != null ? name.toUpperCase() : null;
        }
    }
}