Причина, по которой вы получаете результат в порядке возрастания, заключается в том, что (из представленных вами значений) все даты имеют месяц = 6 и год = 2018.
Если есть разные даты, то если вы просто наберете compareByDescending
, результат будет неверным.
Рассмотрим эти даты:
21-05-2018, 22-4-2018.
Если вы сортируете по убыванию, вы получите 1-е 22-04-2018!
Что вам нужно сделать, это преобразовать даты в гггг-мм-дд, а затем отсортировать по убыванию:
fun convertDate(d: String): String {
val array = d.split("-")
return array[2] + array[1] + array[0]
}
val sortedMap = myHashMap.toSortedMap(compareByDescending { convertDate(it) })
Еще одна вещь: ваши даты должны иметь 2 цифры для месяца и дня и 4 цифры для года, даты, такие как 2-5-2018, дадут неправильный результат.
Последнее редактирование : нет необходимости в -
в конкатенации.