删除ArrayList中的重复项属于日期字段

问题描述 投票:0回答:2

我从数据库中收到了一个对象列表,我想删除具有相同id的重复项,但日期最小的重复项,如果日期相等,我希望保留“ cxalap”最小的对象“:

例如:

如果我在数据库中的列表如下:

List<NotificationCnavOP> notificationCnavOPList = [{id = 1; date = 01/01/2000; cxalap= 1}, {id=2; date = 01/01/2001; cxalap = 2}, {id=2, date = 01/01/2002; cxalap=3}, {id=2, date = 01/01/2001; cxalap=2}]

新的过滤器列表将保留前两个:

List<NotificationCnavOP> notificationCnavOPListFiltered = [{id = 1; date = 01/01/2000; cxalap= 1}, {id=2; date = 01/01/2001; cxalap = 2}]

我不知道该使用什么方法

java list filter
2个回答
0
投票

您可以使用流API。使用Collectors.toMap按日期映射并合并以获取每个日期的第一个。然后使用映射值创建一个ArrayList。


0
投票
  1. 首先在id上排序列表,然后在date上排序。
© www.soinside.com 2019 - 2024. All rights reserved.