Сортировать список со строковой датой [Kotlin] - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть arraylist typeBeanArrayList, где элемент похож на дату: например:

[30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...]

Как сортировать в в порядке убывания.

Код:

typeBeanArrayList = database.getSingleCustomerDetail(c_id!!) //get data from SQlite database

creditListAdapter = CreditListAdapter(typeBeanArrayList)
rv_credit_list!!.adapter = creditListAdapter //Bind data in adapter

Заранее спасибо ...

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Если у вас есть список String s, представляющих даты, один из способов сортировки их в порядке убывания:

val dates = listOf("30-03-2012", "28-03-2013", "31-03-2012", "2-04-2012")

val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")

val result = dates.sortedByDescending {
    LocalDate.parse(it, dateTimeFormatter)
}

println(result)

. Это выдает:

[28-03-2013, 2-04-2012, 31-03-2012, 30-03-2012]

Обратите внимание, чтоsortedByXXX методы возвращают новый список, т.е. они не сортируют на месте

0 голосов
/ 28 февраля 2019

Спасибо @svkaka за информацию.

Я просто заметил одну строку из ответа @svkaka: .sortByDescending { it.length }.

, и я изменяю свой код следующим образом:

typeBeanArrayList.sortByDescending{it.date}

Сортировка отлично работает.

0 голосов
/ 28 февраля 2019

Используйте

[30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...].sortDescending()

, если вы хотите отсортировать по параметру, используйте в этом случае длину

[30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...].sortByDescending { it.length }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...