Всем привет, вопрос по задаче Меню ресторана: Реализуем первый пункт статистики - какую сумму заработали на рекламе, сгруппировать по дням. 1. В классе VideoSelectedEventDataRow создай геттер для поля amount. В классе CookedOrderEventDataRow создай геттер для поля cookName. 2. В StatisticManager создай метод (придумать самостоятельно), который из хранилища достанет все данные, относящиеся к отображению рекламы, и посчитает общую прибыль за каждый день. Дополнительно добавь вспомогательный метод get в класс хранилища, чтобы получить доступ к данным. 3. Начнем с логики метода printAdvertisementProfit в классе DirectorTablet. Используя метод из предыдущего пункта вывести в консоль в убывающем порядке даты и суммы. Для каждой даты из хранилища событий, для которой есть показанная реклама, должна выводится сумма прибыли за показы рекламы для этой даты. В конце вывести слово Total и общую сумму. Пример: 14-Jul-2013 - 2.50 13-Jul-2013 - 1.02 12-Jul-2013 - 543.98 Total - 547.50 Сам решаю тоже через мапу, но застрял на том, как в обратном порядке вывести даты, которые хранятся в ключах с типом String. Заглянул в правильное решение, там делают так же, добавляют данные в HashMap, потом делают список из ключей, сортируют его - то есть если тип String, то сначала должны идти строки где дата меньше, например 12-Jul-2013 а потом 14-Jul-2013, а не наоборот, а потом проходятся по списку и печатают: StatisticManager statisticManager = StatisticManager.getInstance(); Map<String, Long> profitMap = statisticManager.getProfitMap(); ArrayList<String> list = new ArrayList(profitMap.keySet()); Collections.sort(list); for (String key : list) { double amount = 1.0 * profitMap.get(key) / 100; System.out.println(key + " - " + String.format(Locale.ENGLISH, "%.2f", amount)); } Не хочу копировать решение, не могу протестировать. Протестировал просто создавая мапу с такими данными и отсортировывая, но там выводится наоборот, то есть 12-Jul-2013 13-Jul-2013 14-Jul-2013. Подскажите пожалуйста, как происходит сортировка?))