Я работаю над TreeMap.Когда я запускаю этот кусок кода, он дает мне желаемый результат.
TreeMap<String, Integer> dept = new TreeMap<>();
dept.put("Testing", 1);
dept.put("Training", 2);
dept.put("Automation", 3);
dept.put("Web Development", 4);
dept.put("Progamming", 5);
dept.put("Sales", 6);
dept.put("Housekeeping", 7);
SortedMap<String, Integer> subDept = dept.subMap("Sales","Training\0");
subDept.forEach( (name, id) -> System.out.println(name + " -> " + id));
Вывод : Продажи -> 6 Тестирование -> 1 Обучение -> 2
Теперь я изменил TreeMap, чтобы принятькомпаратор и попытался получить подкарту.
TreeMap<String, Integer> dept = new TreeMap<>(Comparator.reverseOrder());
SortedMap<String, Integer> subDept = dept.subMap("Training", "Sales\0");
Но я получаю результат как
Обучение -> 2 тестирования -> 1
, а не
Обучение -> 2 Тестирование -> 1 Продажа -> 6
Почему добавление \ 0 ко второму параметру подкарты не делает его закрытым диапазоном при использовании обращенного компаратора?Или я что-то упустил в коде?