kotlin的MutableList里存放日期字符串 按时间顺序排序
时间: 2024-02-27 21:53:48 浏览: 220
可以使用 Kotlin 中的 sortedBy 方法来对 MutableList 中的日期字符串按时间顺序排序。具体实现如下:
```kotlin
val dateList: MutableList<String> = mutableListOf("2022-02-14", "2022-01-01", "2022-03-08")
val sortedDateList = dateList.sortedBy { LocalDate.parse(it) }
println(sortedDateList) // [2022-01-01, 2022-02-14, 2022-03-08]
```
在这个例子中,我们首先创建了一个包含三个日期字符串的 MutableList。然后,我们使用 sortedBy 方法来对这个列表进行排序,sortedBy 方法接收一个 lambda 表达式作为参数,该表达式将每个元素转换为一个可比较的值。在这里,我们使用 LocalDate.parse 方法将每个日期字符串转换为 LocalDate 对象,然后按照日期顺序进行排序。最后,我们将排序后的列表打印出来。
相关问题
kotlin语言adapter里使用MutableList存放日期字符串,新增一条数据然后 按时间顺序排序并支持api26以下
在 Kotlin 的 Adapter 中使用 MutableList 存放日期字符串,并按时间顺序排序,可以先使用 `MutableList.add()` 方法添加新的日期字符串,然后使用 `MutableList.sortBy()` 方法对列表进行排序。但是需要注意的是,`sortBy()` 方法在 API 26 以下的版本中可能会出现问题,因为它使用了 Java 8 中的 Comparator 接口中的默认方法,而这个特性只在 API 24 及以上的版本中才可用。如果想要支持 API 26 以下的版本,可以使用 `Collections.sort()` 方法来进行排序,它是 Java 中的一个静态方法,可以对 List 进行排序。
下面是一个示例代码,用于将新的日期字符串添加到 MutableList 中,并按时间顺序排序:
```kotlin
// 在 Adapter 中定义一个 MutableList 来存放日期字符串
private var dateList: MutableList<String> = mutableListOf()
// 在 Adapter 中添加新的日期字符串
fun addDate(date: String) {
dateList.add(date)
sortDateList()
}
// 对日期字符串列表按时间顺序排序
private fun sortDateList() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
dateList.sortBy { SimpleDateFormat("yyyy-MM-dd").parse(it) }
} else {
Collections.sort(dateList, object : Comparator<String> {
override fun compare(date1: String, date2: String): Int {
return SimpleDateFormat("yyyy-MM-dd").parse(date1).compareTo(SimpleDateFormat("yyyy-MM-dd").parse(date2))
}
})
}
}
```
在上面的代码中,`addDate()` 方法用于添加新的日期字符串,它会调用 `sortDateList()` 方法来对日期字符串列表进行排序。在 `sortDateList()` 方法中,首先判断当前设备的 API 版本是否大于等于 26,如果是,则使用 `sortBy()` 方法来排序;如果不是,则使用 `Collections.sort()` 方法来排序,其中需要传入一个 Comparator 对象来定义排序规则。在这个 Comparator 对象中,我们使用 SimpleDateFormat 来将日期字符串转换为 Date 对象,并调用 Date 对象的 `compareTo()` 方法进行比较,从而实现按时间顺序排序的功能。
阅读全文