我从数据库中收到了一个对象列表,我想删除具有相同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}]
我不知道该使用什么方法
您可以使用流API。使用Collectors.toMap
按日期映射并合并以获取每个日期的第一个。然后使用映射值创建一个ArrayList。
id
上排序列表,然后在date
上排序。