我有ChatMessage像下面的代码这样的类:
class ChatMessage(val uid: String, val text: String, val fromId: String, val toId: String, val timestamp: Long) {}
Run Code Online (Sandbox Code Playgroud)
它有timestamp作为它的财产
我有一个像这样的空列表,稍后我将用数据填充此 messageList:
val messageList = ArrayList<ChatMessage>()
Run Code Online (Sandbox Code Playgroud)
我想messageList根据时间戳重新排列它,因此最低的时间戳将位于该数组的索引 0 中。
在 Kotlin 中如何做到这一点?如果这是微不足道的,我很抱歉,我是编程和 Kotlin 的新手。
您可以使用Kotlin 标准库中的排序功能。
比方说,您messageList需要根据时间戳进行排序,然后使用以下语法:
val sortedList :List<ChatMessage> = messageList.sortedBy { chatMessage :ChatMessage -> chatMessage.timestamp }
Run Code Online (Sandbox Code Playgroud)
上面的代码将返回您排序后的结果,List<ChatMessage>您可以进一步使用它。
在这里了解更多信息。
您可以sortedWith像compareBy这样使用:
val sortedList = messageList.sortedWith(compareBy({ it.timestamp }))
Run Code Online (Sandbox Code Playgroud)
您甚至可以按多个属性排序:
val sortedList = messageList.sortedWith(compareBy({ it.timestamp }, { it.fromId }))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5867 次 |
| 最近记录: |