首页 > 解决方案 > 如何使用集合运算符在 Kotlin 中按日期删除对象列表中的重复项?

问题描述

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

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

和另外一个

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

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

标签: kotlin

解决方案


你可以像这样实现它

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

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


推荐阅读