用字符串日期排序列表 [Kotlin]

MR.*_*. K 5 sorting kotlin

我有typeBeanArrayList数组列表,其中元素有点像日期:例如:

[30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...]
Run Code Online (Sandbox Code Playgroud)

如何按降序排序。

代码:

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

creditListAdapter = CreditListAdapter(typeBeanArrayList)
rv_credit_list!!.adapter = creditListAdapter //Bind data in adapter
Run Code Online (Sandbox Code Playgroud)

提前致谢...

use*_*612 12

如果您有一个代表日期的 s 列表String,则按降序对它们进行排序的一种方法是:

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)
Run Code Online (Sandbox Code Playgroud)

这将打印:

[28-03-2013, 2-04-2012, 31-03-2012, 30-03-2012]
Run Code Online (Sandbox Code Playgroud)

请注意,sortedByXXX方法返回一个新列表,即它们不会就地排序

  • 我只是有点困惑,我只看日期,但也考虑下降的月份。 (2认同)

MR.*_*. K 10

谢谢@svkaka 提供信息。

我只注意到@svkaka 回答中的一行:.sortByDescending { it.length }

我改变了我的代码,如:

typeBeanArrayList.sortByDescending{it.date}
Run Code Online (Sandbox Code Playgroud)

排序是完美的工作。

  • 它如何按日期排序?这个答案是错误的,它只是获取字符串长度并按降序排序 (3认同)
  • 实际上,它不适用于日期格式,此解决方案检查字符串作为日期。日期不是日期对象 (3认同)