我有一个数组列表 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
预先感谢...
答案 0 :(得分:0)
使用
[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 }
答案 1 :(得分:0)
如果您有String
个代表日期的列表,则按降序对它们进行排序的一种方法是:
val dates = listOf("30-03-2012", "28-03-2013", "31-03-2012", "2-04-2012")
val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("d-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
方法会返回一个新的List,即它们不会对进行排序
答案 2 :(得分:0)
感谢@svkaka提供信息。
我只是注意到@svkaka答案中的一行: .sortByDescending { it.length }
。
然后我更改代码,如:
typeBeanArrayList.sortByDescending{it.date}
排序很完美。
答案 3 :(得分:0)
如果您使用的是自定义模型,则可以使用类似的方法
typeBeanArrayList.sortedWith(compareByDescending<YourModel> { it.date() })