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>
在保持原始顺序的同时创建一个地图,然后从列表中选择最新的对象。在这里我假设日期是long
值时间戳
推荐阅读
- vaadin - 3.0.0.beta 的 Vaadin 上下文菜单添加错误,但适用于 2.1.0
- c# - 为什么这个递归搜索返回不相关的结果?
- c++ - 在 QT 中的两个窗口之间共享 websocket 连接
- javascript - 我可以将 Dart 编译的 JS (JavaScript) 用于静态网站的 Firebase 托管吗
- javafx-css - Javafx CSS:用 CSS 绘制文本
- javascript - 我应该预先分配一个数组还是随我增长
- python - 对数据框中的下 i 行使用 Python 循环
- objective-c - 如何操作 ios 代码
- java - 解密使用散列密钥加密的消息
- c++ - AES ECB 已知文本攻击