HashMaps не хранит отсортированный порядок ключей по определению.Однако вы можете сделать это, получив массив ключей с помощью: Object[] keys = map.keySet().toArray();
Затем отсортировав список с массивами: Arrays.sort(keys);
и, наконец, перебирая каждый ключ и извлекая значение из HashMap.
for(Object key : keys) {
System.out.println(map.get(key));
}
Шаг сортировки здесь заставит алгоритм работать в O (n lg n), а не в O (n), что было бы возможно при использовании структуры данных сортировки.
Это отсортирует список лексикографически,Поскольку в вашем вопросе используется общий формат даты в США, список будет отсортирован по дням, месяцам и годам.Это вряд ли правильно.Вы можете использовать год, месяц, формат строки даты дня или выбрать более подходящий ключевой объект.DateTime и DateTimeComparator Joda-Time были бы весьма полезны.Просто используйте DateTime в качестве ключа и экземпляр DateTimeComparator при вызове Arrays.sort(keys, comparator);
.