kotlin - 我如何使用集合运算符在 Kotlin 中按日期删除对象列表中的重复项?

标签 kotlin

我有一个具有相同 ID 的对象列表,然后,我想保留最近日期的一个,并使用 kotlin 集合运算符删除另一个。例如我有:

{"id":111,
 "date":"02/12/2017"
 }

还有一个

{"id":111,
 "date":"02/8/2018"}

在这种情况下,我想删除第一个对象。

最佳答案

你可以这样实现

list.groupBy { it.id }.entries.map { it.value.maxBy { it.date } }

它将创建 id, List<object> 的 map 同时保持原来的顺序,然后从列表中选择最新的对象。 这里我假设日期是 long值时间戳

关于kotlin - 我如何使用集合运算符在 Kotlin 中按日期删除对象列表中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52270782/

相关文章:

android - 如何在游戏中不让应用切换主题

android - FusedLocationProviderClient 总是报告 LocationAvailability false

java - 如何从字符串从 Kotlin 类转换为接口(interface)/类?

java - flutter - 错误 : Some runtime JAR files in the classpath have an incompatible version. 考虑将它们从类路径中删除

android - FileOutputStream.write 上的 ArrayIndexOutOfBoundsException

kotlin - Kotlin 中的 Util 类(最佳方法)?

android - 如何在 Android 上使用定时器进入 recyclerView

lambda - kotlin html builder 如何在幕后工作?

java - 我正在集成一个 android API,在以下情况下一直无法生成 xwsse token

android - 避免Kotlin中的竞争条件,Smartcast是不可能的运行时异常